DOBON.NET DOBON.NETプログラミング掲示板過去ログ

monthCalendarで複数日の取得と表示

環境/言語:[WindowsXP&Windows7, C#]
分類:[.NET]

monthCalendar では、特定の1日、または、特定の範囲(開始日から終了日)を設定したり、その値を習得できますが、任意の複数の日の設定やその値の取得をすることは可能でしょうか?または、その代替となるアイデアなどはありませんでしょうか。

例)2013年6月1日、2013年6月2日、2013年6月3日、2013年6月10日、2013年6月11日、2013年6月29日など、飛び飛びとなる日付を設定したり、その値を習得したりしたいのです。

ご教授いただけると有難く存じます。
2013/06/24(Mon) 09:54:29 編集(投稿者)

■No31656に返信(Takaさんの記事)

MonthlyBoldedDatesを選択されている日付として扱うと良いと思います。

サンプル
    Private DateSelection As New List(Of Date)

    Private Sub MonthCalendar1_DateSelected(sender As Object, e As System.Windows.Forms.DateRangeEventArgs) Handles MonthCalendar1.DateSelected
        Dim dt = e.Start
        Do While dt <= e.End
            If DateSelection.Contains(dt) Then
                DateSelection.Remove(dt)
            Else
                DateSelection.Add(dt)
            End If
            dt = dt.AddDays(1)
        Loop
        MonthCalendar1.MonthlyBoldedDates = DateSelection.ToArray
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        ListBox1.DataSource = MonthCalendar1.MonthlyBoldedDates
    End Sub


この処理は単月にしか対応していないので複数月に対応するには月を変えた
ときに表示しなおしが必要になります。また表示月に絞った設定をしないと
すべての月の選択状態が同じになってしまいます。
ありがとうございました。
自由に飛び飛びになっている複数日を扱うことは容易ではないようですね。

■No31657に返信(shuさんの記事)
> 2013/06/24(Mon) 09:54:29 編集(投稿者)
>
> ■No31656に返信(Takaさんの記事)
>
> MonthlyBoldedDatesを選択されている日付として扱うと良いと思います。
>

DOBON.NET | プログラミング道 | プログラミング掲示板