PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > セル型 > InputManセル > GcComboBox型セル > リストボックスの使い方(GcComboBox型セル) > リストボックスの外観(GcComboBox型セル) |
リストボックス部の外観の設定方法について説明します。
リストボックス内に表示されている項目のスタイルは、項目(行)ごとに設定できます。
項目にスタイルを設定するには、リスト内の個々の項目を表すListItemInfo のオブジェクトを使用して、個別にスタイル定義することもできますが、ListItemTemplates プロパティを使用すれば、リストボックス全体に一貫したスタイルを適用することができます。ListItemTemplates プロパティを使うと下図のように、複数のスタイルを特定の行おきに繰り返して表示することができます。
ListItemTemplates プロパティは、ItemTemplateCollectionInfo オブジェクトを参照します。ItemTemplateCollectionInfo オブジェクトは、 項目のスタイルを定義するItemTemplateInfo オブジェクトを格納するコレクションです。
スタイルの繰り返しの数は、ItemTemplateCollectionInfo に追加されたItemTemplateInfo オブジェクトの数で決定されます。つまり、コレクションに1つのオブジェクトが格納されている場合は、1つのスタイルが毎行繰り返されるため、リストボックス内の項目のすべてが同じスタイルになります。コレクションにオブジェクトが2つ格納されている場合は、1行おき項目のスタイルが繰り返されるようになります。
ItemTemplateInfo オブジェクトでは、スタイルや外観の設定に関して次のプロパティを持っています。
次のサンプルは、1行おきに項目のスタイルを設定する例です。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType gcComboBox1 = new GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType(); // ヘッダを非表示にします。 gcComboBox1.ListHeaderPane.Visible = false; // コンボコントロールに項目を追加 gcComboBox1.Items.AddRange(new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo[] { new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("日曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("月曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("火曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("水曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("木曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("金曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("土曜日") }); // 項目のスタイルを作成 GrapeCity.Win.Spread.InputMan.CellType.ItemTemplateInfo myItemTemp1 = new GrapeCity.Win.Spread.InputMan.CellType.ItemTemplateInfo(0, null, Color.AliceBlue, Color.Navy, -1, new Font("メイリオ", 9), null); GrapeCity.Win.Spread.InputMan.CellType.ItemTemplateInfo myItemTemp2 = new GrapeCity.Win.Spread.InputMan.CellType.ItemTemplateInfo(0, null, Color.AntiqueWhite, Color.Blue, -1, new Font("メイリオ", 9), null); // スタイルをテンプレートに設定 gcComboBox1.ListItemTemplates.Add(myItemTemp1); gcComboBox1.ListItemTemplates.Add(myItemTemp2); fpSpread1.Sheets[0].Cells[0, 0].CellType = gcComboBox1; |
Visual Basic |
コードのコピー
|
---|---|
Dim gcComboBox1 As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType() ' ヘッダを非表示にします。 gcComboBox1.ListHeaderPane.Visible = False ' コンボコントロールに項目を追加 gcComboBox1.Items.AddRange(New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo() { New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("日曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("月曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("火曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("水曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("木曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("金曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("土曜日")}) ' 項目のスタイルを作成 Dim myItemTemp1 As New GrapeCity.Win.Spread.InputMan.CellType.ItemTemplateInfo(0, Nothing, Color.AliceBlue, Color.Navy, -1, New Font("メイリオ", 9), Nothing) Dim myItemTemp2 As New GrapeCity.Win.Spread.InputMan.CellType.ItemTemplateInfo(0, Nothing, Color.AntiqueWhite, Color.Blue, -1, New Font("メイリオ", 9), Nothing) ' スタイルをテンプレートに設定 gcComboBox1.ListItemTemplates.Add(myItemTemp1) gcComboBox1.ListItemTemplates.Add(myItemTemp2) FpSpread1.ActiveSheet.Cells(0, 0).CellType = gcComboBox1 |
ListGridLines プロパティを使用して、水平方向および垂直方向のグリッド線を設定できます。 ListGridLines プロパティはListGridLinesInfo クラスを参照し、このクラスのHorizontalLinesプロパティは、水平方向のグリッド線を、VerticalLines プロパティは、垂直方向のグリッド線を設定します。
これらのプロパティはLine クラスを参照し、色や幅、線種などを設定することができます。
リストボックスの項目は、選択されている状態と無効な状態のときのスタイルを個別に設定することができます。
選択されている項目のスタイルを設定するには、ListSelectedItemStyle プロパティを使用します。
また、項目を定義するListItemオブジェクトのEnabledプロパティがFalseに設定され、選択できず無効な項目のスタイルはListDisabledItemStyle プロパティを使用します。 いずれもItemStyleInfo クラスを参照し以下のプロパティを持ちます。
次のサンプルコードは、選択項目と無効な項目のスタイルを設定する例です。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType gcComboBox1 = new GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType(); // ヘッダを非表示にします。 gcComboBox1.ListHeaderPane.Visible = false; // コンボコントロールに項目を追加 gcComboBox1.Items.AddRange(new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo[] { new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("日曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("月曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("火曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("水曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("木曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("金曜日"), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("土曜日") }); // 選択項目の背景色と前景色を設定します。 gcComboBox1.ListSelectedItemStyle.BackColor = Color.SlateBlue; gcComboBox1.ListSelectedItemStyle.ForeColor = Color.Yellow; // 3つの項目を無効に設定します。 gcComboBox1.Items[0].Enabled = false; gcComboBox1.Items[1].Enabled = false; gcComboBox1.Items[3].Enabled = false; // 無効な項目のスタイルを設定します。 gcComboBox1.ListDisabledItemStyle.BackColor = Color.WhiteSmoke; gcComboBox1.ListDisabledItemStyle.ForeColor = Color.Silver; fpSpread1.Sheets[0].Cells[0, 0].CellType = gcComboBox1; |
Visual Basic |
コードのコピー
|
---|---|
Dim gcComboBox1 As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType() ' ヘッダを非表示にします。 gcComboBox1.ListHeaderPane.Visible = False ' コンボコントロールに項目を追加 gcComboBox1.Items.AddRange(New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo() { New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("日曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("月曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("火曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("水曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("木曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("金曜日"), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo("土曜日")}) ' 選択項目の背景色と前景色を設定します。 gcComboBox1.ListSelectedItemStyle.BackColor = Color.SlateBlue gcComboBox1.ListSelectedItemStyle.ForeColor = Color.Yellow ' 3つの項目を無効に設定します。 gcComboBox1.Items(0).Enabled = False gcComboBox1.Items(1).Enabled = False gcComboBox1.Items(3).Enabled = False ' 無効な項目のスタイルを設定します。 gcComboBox1.ListDisabledItemStyle.BackColor = Color.WhiteSmoke gcComboBox1.ListDisabledItemStyle.ForeColor = Color.Silver FpSpread1.ActiveSheet.Cells(0, 0).CellType = gcComboBox1 |
リストの項目に含まれるサブアイテムを表すSubItemInfo には、テキストの配置位置を設定する プロパティが2つ用意されています。入力領域内でテキストの水平および垂直方向の整列位置を指定するには、ContentAlignment プロパティを使用します。また、Padding プロパティを使うことで、サブアイテムの上下左右の境界線からデータコンテンツの表示領域までの距離をピクセル単位で調整できます。