MESCIUS MultiRow for Windows Forms 12.0J > InputManCellの使い方 > GcNumberCell > サイドボタンの設定 |
セルの左右両端にはサイドボタンとして自由にボタンを配置し機能を割り付けることができます。本項では、セル内に追加可能なボタンの使用方法について解説します。
セルには次の4種類のボタンオブジェクトを追加できます。
下向きの矢印が描かれたボタンです。主にドロップダウンウィンドウを表示するために用いられます。GcNumberCell ではドロップダウン電卓を表示可能です。ドロップダウンの動作は、DropDownプロパティが 参照するDropDownクラスにより次のようなプロパティを設定できます。
上下それぞれに矢印が描かれた2つのボタンが組み合わされたボタンです。主にセル内の値を増減するために用いられます。
GcNumberCellでは、Spinプロパティが参照するNumberSpinオブジェクトにより、次のようなスピン機能の動作を設定することができます。
SpinModeプロパティはNumberSpinMode 型で提供され、次の3つの値を設定することができます。
SpinModeの値 | 説明 |
---|---|
Field | アクティブなフィールドの値を増減します。 |
Value | セルの値を増減します。 |
Digits | カレットが置かれている桁の数値を増減します。 |
標準のButtonコントロールと同じような外観を持つボタンです。ボタン上にはイメージとテキストを設定することができます。また、CheckOnClickプロパティを使用するとチェックボタンとして機能させることもできます。
SideButtonと同様、標準のButtonコントロールと似た外観を持ちますが、提供されたイメージの中からボタン上に表示する画像を設定することができます。イメージは、Symbolプロパティを使用して設定し、SymbolDirectionプロパティを使用してイメージの向きを設定することができます。
シンボルボタンにはテキストは表示できません。
セルにボタンを追加するには、SideButtonsプロパティが参照するSideButtonCollectionクラスのAddまたはAddRangeメソッドを使用します。SideButtonCollectionクラスは、セルに追加するボタンオブジェクトのコレクションで、セルに追加可能なサイドボタンを追加、削除するためのメソッドを提供します。
以下は、Addメソッドを使用してGcNumberCellにスピンボタンを追加する例です。
Imports GrapeCity.Win.MultiRow Imports InputManCell = GrapeCity.Win.MultiRow.InputMan Dim GcNumberCell1 As New InputManCell.GcNumberCell() GcNumberCell1.Name = "GcNumberCell1" ' スピンボタンを追加 GcNumberCell1.SideButtons.Add(New InputManCell.SpinButton()) GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcNumberCell1})
using GrapeCity.Win.MultiRow; using InputManCell = GrapeCity.Win.MultiRow.InputMan; InputManCell.GcNumberCell gcNumberCell1 = new InputManCell.GcNumberCell(); gcNumberCell1.Name = "gcNumberCell1"; // スピンボタンを追加 gcNumberCell1.SideButtons.Add(new InputManCell.SpinButton()); gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcNumberCell1 });
また、追加したボタンオブジェクトのParentプロパティからは、ボタンが追加されたセルのオブジェクトを取得することができます。
追加したボタンを削除するには、SideButtonCollectionクラスのRemoveメソッドまたは、RemoveAtメソッドを使用します。また、Clearメソッドでコレクションに追加されたすべてのボタンをクリアすることができます。
次のコードは、RemoveAtメソッドを使用してコレクションの先頭に追加されたボタンを削除する例です。
このサンプルでは、テンプレートのRowセクションに[gcNumberCell1]が配置されていることを前提とします。
Imports InputManCell = GrapeCity.Win.MultiRow.InputMan Dim GcNumberCell As InputManCell.GcNumberCell = DirectCast(GcMultiRow1.CurrentRow.Cells("GcNumberCell1"), InputManCell.GcNumberCell) ' コレクションの先頭のボタンを削除 If gcTextBoxCell.SideButtons.Count > 0 Then gcTextBoxCell.SideButtons.RemoveAt(0) End If
using InputManCell = GrapeCity.Win.MultiRow.InputMan; InputManCell.GcNumberCell gcNumberCell = (InputManCell.GcNumberCell)gcMultiRow1.CurrentRow.Cells["gcNumberCell1"]; // コレクションの先頭のボタンを削除 if (gcNumberCell.SideButtons.Count > 0) { gcNumberCell.SideButtons.RemoveAt(0); }
デザイン画面ではサイドボタンの追加や削除ができる「サイドボタンの編集」エディタから容易な設定が可能です。 このエディタは次のいずれかの方法で起動でき、数値コントロールに追加するサイドボタンを設定できます。
ドロップダウン電卓の詳細については「ドロップダウン電卓」を参照してください。
なお、ドロップダウン電卓を表示するには、次の4つの方法があります。
AutoHideTouchKeyboardプロパティを使用すると、ドロップダウン電卓がタッチキーボードの背面に隠れないよう、タッチキーボードを自動的に非表示にすることができます。
サイドボタンおよびシンボルボタンには、プロパティの設定によりスピン動作の機能を割り当てることができます。
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 |
シンボルボタンに割り当てられるスピン機能の詳細については「スピンボタンの最適化」を参照してください。
各ボタンオブジェクトのPositionプロパティを使用するとボタンの表示位置を設定することができます。
それぞれの位置でのボタンの並びはコレクション内のインデックスによって決定されます。コレクション内のインデックスが小さい順に左から右へボタンが配置されます。
ボタンのサイズはセルの高さと各ボタンオブジェクトのWidthプロパティによって設定されます。
サイドボタンの背景色は各ボタンオブジェクトのBackColorプロパティで、前景色はForeColorプロパティで設定します。背景色と前景色はセルのFlatStyleプロパティがFlat、およびPopupの場合のみ有効となります。
(図) FlatStyleプロパティがFlatの場合
(図) FlatStyleプロパティがPopupの場合