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

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

|
Both |
HolidayStylesとGoToTodayの両方

|
表示するコンテキストメニューをデフォルトのコンテキストメニューから独自のコンテキストメニューに切り替えるにはGcCalendarEditingControl.ContextMenuプロパティを使用します。
なお、デフォルトのコンテキストメニューはHolidayStyleCollectionクラスにHolidayStyleオブジェクトが追加されているときだけ表示されます。このメニューは、実行時に休日スタイルを指定または解除するために用意されています。
次のコードは、GcMultiRow.EditingControlShowingイベントを使用してGcCalendarCellの編集セルに独自のコンテキストメニューを表示します。また、フォームに配置された CheckBoxの値によってコンテキストメニューの表示/非表示を切り替えます。
Imports GrapeCity.Win.MultiRow
Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak
Private contextMenu1 As ContextMenu
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim GcCalendarCell1 As New PlusPakCell.GcCalendarCell()
GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcCalendarCell1})
GcMultiRow1.RowCount = 10
' コンテキストメニューの設定
Dim item1 As New MenuItem("AAA")
Dim item2 As New MenuItem("BBB")
Dim item3 As New MenuItem("CCC")
contextMenu1 = New ContextMenu(New MenuItem() {item1, item2, item3})
End Sub
Private Sub GcMultiRow1_EditingControlShowing(sender As Object, e As EditingControlShowingEventArgs) Handles GcMultiRow1.EditingControlShowing
Dim gcCalendarEditor As PlusPakCell.GcCalendarEditingControl = DirectCast(e.Control, PlusPakCell.GcCalendarEditingControl)
If Not gcCalendarEditor Is Nothing Then
' GcCalendarCellの編集セルにコンテキストメニューを設定
gcCalendarEditor.ContextMenu = contextMenu1
' コンテキストメニューの表示/非表示の設定
If CheckBox1.Checked Then
gcCalendarEditor.ShowContextMenu = True
Else
gcCalendarEditor.ShowContextMenu = False
End If
End If
End Sub
using GrapeCity.Win.MultiRow;
using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak;
private ContextMenu contextMenu1;
private void Form1_Load(object sender, EventArgs e)
{
PlusPakCell.GcCalendarCell gcCalendarCell1 = new PlusPakCell.GcCalendarCell();
gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcCalendarCell1 });
gcMultiRow1.RowCount = 10;
// コンテキストメニューの設定
MenuItem item1 = new MenuItem("AAA");
MenuItem item2 = new MenuItem("BBB");
MenuItem item3 = new MenuItem("CCC");
contextMenu1 = new ContextMenu(new MenuItem[] { item1, item2, item3 });
}
private void gcMultiRow1_EditingControlShowing(object sender, GrapeCity.Win.MultiRow.EditingControlShowingEventArgs e)
{
PlusPakCell.GcCalendarEditingControl gcCalendarEditor = (e.Control as PlusPakCell.GcCalendarEditingControl);
if (gcCalendarEditor != null)
{
// GcCalendarCellの編集セルにコンテキストメニューを設定
gcCalendarEditor.ContextMenu = contextMenu1;
// コンテキストメニューの表示/非表示の設定
if (checkBox1.Checked)
{
gcCalendarEditor.ShowContextMenu = true;
}
else
{
gcCalendarEditor.ShowContextMenu = false;
}
}
}
GcCalendarCellでは、ShowNavigatorプロパティの設定によって、ナビゲータをOutlookスタイルまたは表示なしに設定することができます。ナビゲータをOutlookスタイルにすることで、表示されている年や月を自由に切り替えられます。

また、Outlookスタイルのナビゲータに表示されているスキップボタンの1回の操作で移動する月の数は、ScrollRateプロパティで設定します。
ShowNavigatorプロパティがCalendarNavigators.Outlookの場合、ナビゲータを左クリックすることで年と月のリストが表示されます。このリストはShowNavigationPopupListプロパティをFalseに設定することで非表示に設定可能です。
以下のコードはナビゲータをOutlookに設定し、年と月のリストを非表示にする例です。
Imports GrapeCity.Win.MultiRow
Imports PlusPakCell = GrapeCity.Win.MultiRow.PlusPak
Dim GcCalendarCell1 = New PlusPak.GcCalendarCell()
' ナビゲータをOutlookに設定します。
GcCalendarCell1.ShowNavigator = PlusPakCell.CalendarNavigators.Outlook
' 年月リストを非表示に設定します。
GcCalendarCell1.ShowNavigationPopupList = False
GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcCalendarCell1})
GcMultiRow1.RowCount = 10
using GrapeCity.Win.MultiRow;
using PlusPakCell = GrapeCity.Win.MultiRow.PlusPak;
PlusPakCell.GcCalendarCell gcCalendarCell1 = new PlusPakCell.GcCalendarCell();
//ナビゲータをOutlookに設定します。
gcCalendarCell1.ShowNavigator = PlusPakCell.CalendarNavigators.Outlook;
//年月リストを非表示に設定します。
gcCalendarCell1.ShowNavigationPopupList = false;
gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcCalendarCell1 });
gcMultiRow1.RowCount = 10;
カレンダーの最初の列に表示する曜日は、
FirstDayOfWeekプロパティで設定します。通常のカレンダーでは、日曜日または月曜日が最初の列に表示されます。なお、デフォルトでは、週の開始曜日はシステムから取得されます。
12か月分のカレンダーを表示している場合に、左上に配置する最初の月は、
FirstMonthInViewプロパティで設定します。FirstMonthInViewプロパティをMonths.Default以外に設定すると、指定した月が左上に表示されます。ナビゲータのスキップボタン、またはマウスホイールによるカレンダーのスクロールを行うと、
ScrollRateプロパティの設定にかかわらず、常に1回の操作につき1年分のカレンダーがスクロールされます。カレンダー内に表示される最初の月はどんな場合にも変更されません。
カレンダーに表示する日付の最小値と最大値は、
MinDateプロパティと
MaxDateプロパティで設定します。この最小値と最大値を超える日付には、フォーカスを移動することはできません。
ShowRokuyou プロパティを設定することで、カレンダーの日付領域に六曜を表示することが可能です。日付領域に表示する六曜の配置位置は、
RokuyouAlignment プロパティの設定によって決めます。
六曜のスタイル(フォント、文字色、文字の立体効果)は、その日付に指定しているスタイルに基づきます。日付に対するフォントサイズの比率は、
RokuyouFontScale プロパティで設定できます。