tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルカレンダーの日付がクリックされたときの処理
記事No7977
投稿日: 2008/08/21(Thu) 00:57
投稿者佑ちゃん
日付とメモ帳の中のスコアを表示したいのですが、MonthCalendarを使った方法はありますか?

[ツリー表示へ]
タイトルRe: カレンダーの日付がクリックされたときの処理
記事No7988
投稿日: 2008/08/22(Fri) 11:19
投稿者もょもと
C:\test.txtに下記の記述があり(csvにしてしまった方がいいんですけどね)…

2008/8/20,スコア0
2008/8/21,スコア1
2008/8/22,スコア2

MonthCalendar1の日付が選択された場合に、
選択された日付のデータをRichTextBox1に表示させたいのでしたら…

    'データ保存用構造体
    Private Structure Memo
        Dim day As Date                 '日付
        Dim score As String             'スコア
    End Structure
    Private mm() As Memo

    Private Sub MonthCalendar1_DateChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateChanged
        '***************************************
        '変数の宣言
        '***************************************
        Dim fileName As String = "C:\test.txt"          'ファイルのパス
        Dim fileNo As Integer = FreeFile()              'ファイル番号を取得
        Dim i As Integer

        '***************************************
        '処理開始
        '***************************************
        'ファイルを入力モードで開く
        FileOpen(fileNo, fileName, OpenMode.Input)

        'ファイルの最後までループ
        Do Until EOF(fileNo)
            ReDim Preserve mm(i)
            Input(fileNo, mm(i).day)
            Input(fileNo, mm(i).score)

            '選択された日付のデータをRichTextBox1に表示
            If mm(i).day = Me.MonthCalendar1.SelectionRange.Start Then
                Me.RichTextBox1.Text = mm(i).day & vbCrLf & mm(i).score
            End If

            i += 1
        Loop
        FileClose(fileNo)                               'ファイルを閉じる

    End Sub

上記のような方法でいかがですか?

[ツリー表示へ]
タイトルRe^2: カレンダーの日付がクリックされたときの処理
記事No7998
投稿日: 2008/08/22(Fri) 18:32
投稿者佑ちゃん
> C:\test.txtに下記の記述があり(csvにしてしまった方がいいんですけどね)…
>
> 2008/8/20,スコア0
> 2008/8/21,スコア1
> 2008/8/22,スコア2
>
> MonthCalendar1の日付が選択された場合に、
> 選択された日付のデータをRichTextBox1に表示させたいのでしたら…
>
>     'データ保存用構造体
>     Private Structure Memo
>         Dim day As Date                 '日付
>         Dim score As String             'スコア
>     End Structure
>     Private mm() As Memo
>
返信ありがとうございます!!
この通り記述したのですが、何度やってみても日付の部分が「インデックスが配列の境界外です」というエラーメッセージが出てしまいます。
解決策はありますでしょうか?
質問ばかりですみません。

[ツリー表示へ]
タイトルRe^3: カレンダーの日付がクリックされたときの処理
記事No8012
投稿日: 2008/08/26(Tue) 09:50
投稿者もょもと
> この通り記述したのですが、何度やってみても日付の部分が「インデックスが配列の境界外です」というエラーメッセージが出てしまいます。
> 解決策はありますでしょうか?

あれ?こっちではエラー出ません。
どの記述の部分で落ちているのか正確に教えて頂けますか?

[ツリー表示へ]