リストボックス部の項目のスタイル、サブアイテムのスタイル等について説明します。ヘッダのスタイルについては「ヘッダの設定」を参照してください。
リストボックス内に表示されている項目のスタイルは、項目(行)ごとにスタイルを定義することができます。
項目にスタイルを定義するには、リスト内の個々の項目を表すListItem のオブジェクトを使用して、個別にスタイル定義することもできますが、ListItemTemplates プロパティを使用すれば、リストボックス全体に一貫したスタイルを適用することができるため便利です。ListItemTemplates プロパティを使うと下図のように、複数のスタイルを特定の行おきに繰り返して表示することができます。
ListItemTemplates プロパティは、ItemTemplateCollection オブジェクトを参照します。ItemTemplateCollection オブジェクトは、 項目のスタイルを定義するItemTemplate オブジェクトを格納するコレクションです。
スタイルの繰り返しの数は、ItemTemplateCollection に追加されたItemTemplate オブジェクトの数で決定されます。つまり、コレクションに1つのオブジェクトが格納されている場合は、1つのスタイルが毎行繰り返されるため、リストボックス内の項目のすべてが同じスタイルになります。コレクションにオブジェクトが2つ格納されている場合は、1行おき項目のスタイルが繰り返されるようになります。
ItemTemplate オブジェクトでは、スタイルや外観の設定に関して次のプロパティを持っています。
次のサンプルは、1行おきに項目のスタイルを設定する例です。
Imports GrapeCity.Win.Editors ' ヘッダを非表示にします。 GcComboBox1.ListHeaderPane.Visible = False ' コンボコントロールに項目を追加 GcComboBox1.Items.AddRange(New ListItem() { _ New ListItem("Sunday"), New ListItem("Monday"), _ New ListItem("Tuesday"), New ListItem("Wednesday"), _ New ListItem("Thursday"), New ListItem("Friday"), _ New ListItem("Saturday") _ }) ' 項目のスタイルを作成 Dim myItemTemp1 As New ItemTemplate(0, Nothing, Color.Silver, Color.Black, -1, New Font("MS ゴシック", 9), Nothing) Dim myItemTemp2 As New ItemTemplate(0, Nothing, Color.Black, Color.White, -1, New Font("MS ゴシック", 9), Nothing) ' スタイルをテンプレートに設定 GcComboBox1.ListItemTemplates.Add(myItemTemp1) GcComboBox1.ListItemTemplates.Add(myItemTemp2)
using GrapeCity.Win.Editors; // ヘッダを非表示にします。 gcComboBox1.ListHeaderPane.Visible = false; // コンボコントロールに項目を追加 gcComboBox1.Items.AddRange(new ListItem[] { new ListItem("Sunday"), new ListItem("Monday"), new ListItem("Tuesday"), new ListItem("Wednesday"), new ListItem("Thursday"), new ListItem("Friday"), new ListItem("Saturday") }); // 項目のスタイルを作成 ItemTemplate myItemTemp1 = new ItemTemplate(0, null, Color.Silver, Color.Black, -1, new Font("MS ゴシック", 9), null); ItemTemplate myItemTemp2 = new ItemTemplate(0, null, Color.Black, Color.White, -1, new Font("MS ゴシック", 9), null); // スタイルをテンプレートに設定 gcComboBox1.ListItemTemplates.Add(myItemTemp1); gcComboBox1.ListItemTemplates.Add(myItemTemp2);
なお、デザイン画面では項目のスタイルを設定する専用のエディタ「項目スタイルの既定値の設定」から容易な設定が可能です。 このエディタは次のいずれかの方法で起動できます。
また、コンボコントロールは、プリセットとして予め定義されたスタイルテンプレートを使って項目や交互行のスタイルを定義することができます。 スタイルテンプレートから選択したスタイルは、自動的に項目スタイルに変換され「項目スタイルの既定値の設定」エディタで再編集することも可能です。スタイルテンプレートは次のいずれかの方法で起動できます。
「テンプレート」ダイアログ |
ListGridLines プロパティを使用して、水平方向および垂直方向のグリッド線を設定できます。 ListGridLines プロパティはListGridLines クラスを参照し、このクラスのHorizontalLines プロパティは、水平方向のグリッド線を、VerticalLines プロパティは、垂直方向のグリッド線を設定します。
これらのプロパティはLine クラスを参照し、色や幅、線種などを設定することができます。
リストボックスの項目は、選択されている状態と無効な状態のときのスタイルを個別に設定することができます。
選択されている項目のスタイルを設定するには、ListSelectedItemStyle プロパティを使用します。
また、項目を定義するListItem オブジェクトのEnabled プロパティがFalseに設定され、選択できず無効な項目のスタイルはListDisabledItemStyle プロパティを使用します。 いずれもItemStyle クラスを参照し以下のプロパティを持ちます。
次のサンプルコードは、選択項目と無効な項目のスタイルを設定する例です。
Imports GrapeCity.Win.Editors ' ヘッダを非表示にします。 GcComboBox1.ListHeaderPane.Visible = False ' コンボコントロールに項目を追加します。 GcComboBox1.Items.AddRange(New ListItem() { _ New ListItem("Sunday"), New ListItem("Monday"), _ New ListItem("Tuesday"), New ListItem("Wednesday"), _ New ListItem("Thursday"), New ListItem("Friday"), _ New ListItem("Saturday") _ }) ' 選択項目の背景色と前景色を設定します。 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.Gray GcComboBox1.ListDisabledItemStyle.ForeColor = Color.Silver
using GrapeCity.Win.Editors; // ヘッダを非表示にします。 gcComboBox1.ListHeaderPane.Visible = false; // コンボコントロールに項目を追加します。 gcComboBox1.Items.AddRange(new ListItem[] { new ListItem("Sunday"), new ListItem("Monday"), new ListItem("Tuesday"), new ListItem("Wednesday"), new ListItem("Thursday"), new ListItem("Friday"), new ListItem("Saturday") }); // 選択項目の背景色と前景色を設定します。 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.Gray; gcComboBox1.ListDisabledItemStyle.ForeColor = Color.Silver;
リストの項目に含まれるサブアイテムを表すSubItem には、テキストの配置位置を設定する プロパティが2つ用意されています。入力領域内でテキストの水平および垂直方向の整列位置を指定するには、ContentAlignment プロパティを使用します。また、Padding プロパティを使うことで、サブアイテムの上下左右の境界線からデータコンテンツの表示領域までの距離をピクセル単位で調整できます。