PowerTools CalendarGrid for Windows Forms 1.0J > CalendarGridの使い方 > InputManCell > GcNumber型セル > サイドボタンを設定する(CalendarGcNumberCellType) |
CalendarGcNumberCellType.SideButtonsプロパティを使用します。
セルの左右両端にはサイドボタンとして自由にボタンを配置し機能を割り付けることができます。
セルにボタンを追加するには、SideButtonsプロパティが参照するSideButtonCollectionクラスを使用します。SideButtonCollectionクラスは、セルに追加するボタンオブジェクトのコレクションで、セルに追加可能なサイドボタンを追加、削除するためのメソッドを提供します。
セルには次の4種類のボタンオブジェクトを追加できます。
SpinModeの値 | 説明 |
---|---|
Field |
アクティブなフィールドの値を増減します。 |
Value |
セルの値を増減します。 |
Digits |
カレットが置かれている桁の数値を増減します。 |
ボタンの追加や削除を行うには、デザイナのプロパティウィンドウから開かれるサイドボタン コレクション エディタから行うことができます。
また、コードでセルにボタンを追加するには、SideButtonCollectionクラスのAddまたはAddRangeメソッドを使用します。
以下は、Addメソッドを使用してCalendarGcNumberCellTypeにスピンボタンを追加する例です。
Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan Dim today As DateTime = DateTime.Today Dim GcNumberCellType As New InputManCell.CalendarGcNumberCellType() ' シンボルボタンを追加 GcNumberCellType.SideButtons.Add(New InputManCell.SymbolButton()) GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType = GcNumberCellType GcCalendarGrid1.ScrollIntoView(today)
using InputManCell = GrapeCity.Win.CalendarGrid.InputMan; var today = DateTime.Today; var gcNumberCellType = new InputManCell.CalendarGcNumberCellType(); // シンボルボタンを追加 gcNumberCellType.SideButtons.Add(new InputManCell.SymbolButton()); gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType = gcNumberCellType; gcCalendarGrid1.ScrollIntoView(today);
追加したボタンを削除するには、クラスのRemoveメソッドまたは、RemoveAtメソッドを使用します。また、Clearメソッドでコレクションに追加されたすべてのボタンをクリアすることができます。
次のコードは、RemoveAtメソッドを使用してコレクションの先頭に追加されたボタンを削除する例です。
このサンプルでは、テンプレートのRowセクションに[gcNumberCell1]が配置されていることを前提とします。
Imports InputManCell = GrapeCity.Win.CalendarGrid.InputMan Dim today As DateTime = DateTime.Today Dim GcNumberCellType As InputManCell.CalendarGcNumberCellType = _ DirectCast(GcCalendarGrid1.Content(today).Rows(1).Cells(0).CellType, InputManCell.CalendarGcNumberCellType) ' コレクションの先頭のボタンを削除 If GcNumberCellType.SideButtons.Count > 0 Then GcNumberCellType.SideButtons.RemoveAt(0) End If
using InputManCell = GrapeCity.Win.CalendarGrid.InputMan; var today = DateTime.Today; InputManCell.CalendarGcNumberCellType gcMaskCell = (InputManCell.CalendarGcNumberCellType)gcCalendarGrid1.Content[today].Rows[1].Cells[0].CellType; // コレクションの先頭のボタンを削除 if (gcMaskCell.SideButtons.Count > 0) { gcMaskCell.SideButtons.RemoveAt(0); }
コントロールの機能のため、InputManCellでサポートされません。
各ボタンオブジェクトのPositionプロパティを使用するとボタンの表示位置を設定することができます。
それぞれの位置でのボタンの並びはコレクション内のインデックスによって決定されます。コレクション内のインデックスが小さい順に左から右へボタンが配置されます。
ボタンのサイズはセルの高さと各ボタンオブジェクトのWidthプロパティによって設定されます。
サイドボタンの背景色は各ボタンオブジェクトのBackColorプロパティで、前景色はForeColorプロパティで設定します。背景色と前景色はセルのFlatStyleプロパティがFlat、およびPopupの場合のみ有効となります。
(図) FlatStyle プロパティがFlatの場合
(図) FlatStyle プロパティがPopupの場合
各サイドボタンでは押されたときの動作をプロパティで割り当てることができます。
SideButtonクラスは、サイドボタンにスピン動作を割り当てるBehaviorプロパティを提供します。また、Behaviorプロパティに設定した値により、IntervalプロパティとTextプロパティの初期値が自動的に変更されます。
Behaviorプロパティに設定可能な値は以下の通りです。
Behaviorの値 | 説明 | Intervalプロパティの初期値 | Textプロパティの初期値 |
---|---|---|---|
None |
スピン動作を割り当てません。 |
0 |
なし |
SpinUp |
スピンアップ(値を増加)の動作を割り当てます。 |
60 |
"+" |
SpinDown |
スピンダウン(値を減少)の動作を割り当てます。 |
60 |
"-" |
サイドボタンに割り当てられるスピン機能の詳細については「スピンボタンの最適化」を参照してください。
SymbolButtonクラスは、サイドボタンにスピン動作を割り当てるBehaviorプロパティを提供します。また、Behaviorプロパティに設定した値により、Intervalプロパティ、SymbolプロパティおよびSymbolDirectionプロパティの初期値が自動的に変更されます。
Behaviorプロパティに設定可能な値は以下の通りです。
Behaviorの値 | 説明 | Intervalプロパティの初期値 | Symbolプロパティの初期値 | SymbolDirectionプロパティの初期値 |
---|---|---|---|---|
None |
スピン動作を割り当てません。 |
0 |
None |
Left |
SpinUp |
スピンアップ(値を増加)の動作を割り当てます。 |
60 |
Arrow |
Up |
SpinDown |
スピンダウン(値を減少)の動作を割り当てます。 |
60 |
Arrow |
Down |
シンボルボタンに割り当てられるスピン機能の詳細については「スピンボタンの最適化」を参照してください。