MESCIUS PlusPak for Windows Forms 12.0J
カレンダーの操作

GcCalendar コントロールでカレンダーの表示を切り替える方法について、以下に解説します。

マウスホイールによるページ切り替え
NavigateOnWheelModeプロパティを使用すると、コントロールがフォーカスを持っているときに、マウスホイールによるカレンダーのページの切り替えの動作を指定できます。
マウスホイールで常にページ切り替えをする場合はAlwaysを設定し、コントロール上にマウスポインタが置かれている場合のみにページ切り替えをする場合はHoverを設定します。また、マウスホイールによるページの切り替えを禁止する場合はDisableを設定します。
次のコードは、コントロール上にマウスポインタが置かれている場合のみにページ切り替えをします。
GcCalendar1.NavigateOnWheelMode = GrapeCity.Win.Calendar.NavigateOnWheelMode.Hover
gcCalendar1.NavigateOnWheelMode = GrapeCity.Win.Calendar.NavigateOnWheelMode.Hover;

コンテキストメニューの設定

ShowContextMenuプロパティを使用すると、コントロール上でマウスの右ボタンをクリックしたときに表示されるコンテキストメニューの表示/非表示を切り替えられます。
また、ContextMenuContentプロパティを使用することでコンテキストメニューに表示する項目の種類を設定できます。休日スタイル(HolidayStyles)、”今日へ移動”(GoToToday)、もしくはその両方(both)の種類が設定可能になっており、既定値はBoth(両方)です。

ContextMenuContentの値 コンテキストメニューの表示内容
HolidayStyles 休日スタイルを指定または解除

GoToToday 今日に該当するカレンダー上の日付への移動

Both HolidayStylesとGoToTodayの両方

  • コンテキストメニュー上の休日スタイルはHolidayStyleCollectionコレクションにHolidayStyleオブジェクトが追加されているときだけ表示されます。

独自コンテキストメニューの使用
表示するコンテキストメニューをデフォルトのコンテキストメニューから独自のコンテキストメニューに切り替えるには、ContextMenuStripプロパティを使用します。
以下のコードは独自のコンテキストメニューを生成し、GcCalendarコントロールに設定する例です。
' コンテキストメニューを作成します。
Dim menu = New System.Windows.Forms.ContextMenuStrip()
menu.Items.Add("メニューA")
menu.Items.Add("メニューB")
menu.Items.Add("メニューC")
' コンテキストメニューを設定します。
GcCalendar1.ContextMenuStrip = menu
            
// コンテキストメニューの作成します。
ContextMenuStrip menu = new System.Windows.Forms.ContextMenuStrip();
menu.Items.Add("メニューA");
menu.Items.Add("メニューB");
menu.Items.Add("メニューC");
// コンテキストメニューを設定します。
gcCalendar1.ContextMenuStrip = menu;
            

ナビゲーションとスクロール
カレンダーコントロールでは、ShowNavigatorプロパティの設定によって3種類のナビゲータを利用できます。これらのナビゲータを使用することで、表示されている年や月を自由に切り替えられます。


また、3つのナビゲータに表示されているスキップボタンの1回の操作で移動する月の数は、ScrollRateプロパティで設定します。
ShowNavigatorプロパティをCalendarNavigators.Scrollbarに設定しているときは、ShowScrollTipプロパティを設定することで、スクロールチップを表示できます。さらに、ScrollTipAlignプロパティでスクロールチップの配置も指定可能です。
以下のコードはスクロールチップをGcCalendarコントロールの中央に表示する設定の例です。
'ナビゲータをスクロールバーに設定します。
GcCalendar1.ShowNavigator = GrapeCity.Win.Calendar.CalendarNavigators.ScrollBar
'スクロールチップを表示します。
GcCalendar1.ShowScrollTip = True
'スクロールチップの表示位置を中央に設定します。
GcCalendar1.ScrollTipAlign = GrapeCity.Win.Calendar.ScrollTipAlignment.Center
            
//ナビゲータをスクロールバーに設定します。
gcCalendar1.ShowNavigator = GrapeCity.Win.Calendar.CalendarNavigators.ScrollBar;
//スクロールチップを表示します。
gcCalendar1.ShowScrollTip = true;
//スクロールチップの表示位置を中央に設定します。
gcCalendar1.ScrollTipAlign = GrapeCity.Win.Calendar.ScrollTipAlignment.Center;
            
また、ShowNavigatorプロパティがCalendarNavigators.Outlookの場合、ナビゲータを左クリックすることで年と月のリストが表示されます。このリストはShowNavigationPopupListプロパティをFalseに設定することで非表示に設定可能です。


以下のコードはナビゲータをOutlookに設定し、年と月のリストを非表示にする例です。
'ナビゲータをOutlookに設定します。
GcCalendar1.ShowNavigator = GrapeCity.Win.Calendar.CalendarNavigators.Outlook
'年月リストを非表示に設定します。
GcCalendar1.ShowNavigationPopupList = False
            
//ナビゲータをOutlookに設定します。
gcCalendar1.ShowNavigator = GrapeCity.Win.Calendar.CalendarNavigators.Outlook;
//年月リストを非表示に設定します。
gcCalendar1.ShowNavigationPopupList = false;
            
GcCalendar コントロールに用意されているScrollYearScrollMonthの各メソッドは、指定した年数または月数だけカレンダーをスクロールします。ShowNavigatorプロパティをCalendarNavigators.Noneに設定して、これらのメソッドを活用することで、独自のナビゲーションを実現できます。
これらのナビゲータまたはメソッドを使ってカレンダーをスクロールしたときには、Scrolled イベントが発生します。年に応じて変化する休日などを設定するときに使用します。また、Scrolled イベントの後にはFocusDateChangedイベントが発生します。

関連トピック

 

 


© MESCIUS inc. All rights reserved.