SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――カレンダー機能編

(2) Calendarコントロール

5. 単一または複数の日付の選択を許可する

 単一または複数の日付の選択を許可するにはSelectionModeプロパティを設定します。

 SelectioMode プロパティには、CalendarSelectionMode列挙体を指定します。

CalendarSelectionMode 列挙体
メンバー名 説明
SingleDate 単一の日付を選択できる
SingleRange 単一の日付範囲を選択できる
MultipleRange 複数の日付範囲を選択できる
None 選択を許可しない

 下記は、4つのカレンダーコントロールにCalendarSelectionMode列挙体の値をそれぞれ設定する例です。

単一または複数の日付の選択を許可する例
単一または複数の日付の選択を許可する例
XAMLの例
<Calendar Name="Calendar1" SelectionMode="SingleDate" />
<Calendar Name="Calendar2" SelectionMode="SingleRange" />
<Calendar Name="Calendar3" SelectionMode="MultipleRange" />
<Calendar Name="Calendar4" SelectionMode="None" />
VBの例
Private Sub Window_Loaded(ByVal sender As System.Object, 
    ByVal e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded

    Calendar1.SelectionMode = CalendarSelectionMode.SingleDate      '1つの日付を選択
    Calendar2.SelectionMode = CalendarSelectionMode.SingleRange     '1つの日付範囲を選択
    Calendar3.SelectionMode = CalendarSelectionMode.MultipleRange   '複数の日付範囲を選択
    Calendar4.SelectionMode = CalendarSelectionMode.None            '選択を許可しない
End Sub
C#の例
private void Window_Loaded(object sender, RoutedEventArgs e)
{
    calendar1.SelectionMode = CalendarSelectionMode.SingleDate;     // 1つの日付を選択
    calendar2.SelectionMode = CalendarSelectionMode.SingleRange;    // 1つの日付範囲を選択
    calendar3.SelectionMode = CalendarSelectionMode.MultipleRange;  // 複数の日付範囲を選択
    calendar4.SelectionMode = CalendarSelectionMode.None;           // 選択を許可しない
}
ポイント

 単一または複数の日付の選択を許可するには SelectionMode プロパティを設定する。

 

6. 現在選択されている日付を取得する

 現在選択されている日付を取得するには、SelectedDateプロパティまたはSelectedDatesプロパティを参照します。

 単一の日付しか選択できないようにしている場合(SelectionMode プロパティがSingleDate)にはSelectedDateプロパティを、複数の日付が選択できるようにしている場合(SelectionMode プロパティがSingleRangeまたはMultipleRange)にはSelectedDatesプロパティを参照します。

 下記は、複数の日付が選択できるようにしたCalendarコントロールで、選択された日付をメッセージボックスに表示する例です。

現在選択されている日付を取得する例
現在選択されている日付を取得する例
XAMLの例
<!-- SelectionMode に MultipleRange を設定して複数の日付を選択できるようにする -->
<Calendar SelectionMode="MultipleRange" />
VBの例
Private Sub Button1_Click(ByVal sender As System.Object, 
    ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click

    Dim selectedDate As String = ""

    For I As Integer = 0 To Calendar1.SelectedDates.Count - 1
        selectedDate &= Calendar1.SelectedDates(I).ToShortDateString() & ControlChars.CrLf
    Next

    MessageBox.Show(selectedDate)
End Sub
C#の例
private void button1_Click(object sender, RoutedEventArgs e)
{
    string selectedDate = "";

    for ( int i = 0; i < calendar1.SelectedDates.Count; i++ )
    {
        selectedDate += calendar1.SelectedDates[i].ToShortDateString() + "\r\n";
    }

    MessageBox.Show(selectedDate);
}
ポイント

 現在選択されている日付を参照するにはSelectedDateプロパティかSelectedDatesプロパティを参照する。

 

次のページ
7. 任意の日付を選択する

この記事は参考になりましたか?

Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5478 2010/10/08 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー