InputManCellに含まれる次のセル型をデザイナで配置すると、Template.Designer.vbファイルの初期化コードで、コンストラクタにFalse をとるコードが生成されます。
- GcCharMaskCell
- GcComboBoxCell
- GcNumberCell
- GcTimeSpanCell
この引数はinitializationとして定義されているもので、次のような機能を提供しています。
- Trueのとき既定のドロップダウンボタンやショートカットキーを自動的に生成します。Falseの場合はこれらのオブジェクトを自動的に生成しません。
たとえば、GcComboBoxCellを引数なしでインスタンス化した場合、ドロップダウンボタンを持つコンボボックスが作成されます。一方、引数にFalseを渡してインスタンス化した場合、ドロップダウンボタンを持たないコンボボックスが作成されます。前者は一般的なコンボボックスに適し、後者は複数のボタンを持つカスタマイズされたコンボボックスを作成するのに適しています。つまり、この引数は用途に応じて異なる初期化の方法を提供しています。
MultiRowのデザイナでは、ユーザーがドロップダウンボタン(サイドボタン)やショートカットキーをカスタマイズする可能性を考慮するため、上記のセルをFalseの引数で初期化し、合わせてドロップダウンボタンを明示的に定義します。ユーザーはドロップダウンボタンをすべて削除したり、既定のボタンを除いて独自のボタンを定義することができます。
次のコードは、引数の違いによる結果の違いを示します。
Imports GrapeCity.Win.MultiRow
Imports InputManCell = GrapeCity.Win.MultiRow.InputMan
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim GcComboBoxCell1 As New InputManCell.GcComboBoxCell(True)
' Dim GcComboBoxCell1 As New InputManCell.GcComboBoxCell(False)
GcComboBoxCell1.DropDownStyle = MultiRowComboBoxStyle.DropDown
Console.WriteLine("サイドボタンの数: {0}", GcComboBoxCell1.SideButtons.Count)
Console.WriteLine("ショートカットキーの数: {0}", GcComboBoxCell1.ShortcutKeys.Count)
Me.GcMultiRow1.Template = Template.CreateGridTemplate(New Cell() {GcComboBoxCell1})
Me.GcMultiRow1.RowCount = 5
End Sub
using GrapeCity.Win.MultiRow;
using InputManCell = GrapeCity.Win.MultiRow.InputMan;
InputManCell.GcComboBoxCell gcComboBoxCell1 = new InputManCell.GcComboBoxCell(true);
// InputManCell.GcComboBoxCell gcComboBoxCell1 = new InputManCell.GcComboBoxCell(false);
gcComboBoxCell1.DropDownStyle = MultiRowComboBoxStyle.DropDown;
Console.WriteLine("サイドボタンの数: {0}", gcComboBoxCell1.SideButtons.Count);
Console.WriteLine("ショートカットキーの数: {0}", gcComboBoxCell1.ShortcutKeys.Count);
this.gcMultiRow1.Template = Template.CreateGridTemplate(new Cell[] { gcComboBoxCell1 });
this.gcMultiRow1.RowCount = 5;
引数がTrueの場合、サイドボタンの数は1、ショートカットキーの数は2になります。引数がFalseの場合、サイドボタンの数は0、ショートカットキーの数は0になり、開発者が明示的にこれらを追加する必要があることがわかります。
参照