MESCIUS SPREAD for Windows Forms 17.0J > 開発者ガイド > セル型 > InputManセル > GcComboBox型セル > 項目の設定(GcComboBox型セル) |
GcComboBox型セルに項目を設定する方法について説明します。
GcComboBox型セルに項目を追加するには、Items プロパティに項目のコレクションを追加する方法とデータソースを使う方法があります。
Items プロパティを使って、コレクションに項目を設定する場合は、項目(ListItemInfo)のオブジェクトを生成し、Items プロパティが参照するListItemCollectionInfo に追加します。 また、個々の項目を表すListItemInfoは、マルチカラムを表現するためのサブアイテム(SubItemInfo)を持っています。
一方、リストに表示する項目をデータセットなどから行う場合、データソースを使用して設定することができます。データソースを使用した場合は、Visual Studio 標準のDataGridView のようにデータソースを設定するだけで、自動的にデータと接続することができます。
それぞれの設定方法について、次の項目で説明します。
リストボックスに表示された項目はソート機能により昇順または降順に並び変えることが可能です。項目を並び変えるにはListSortColumnIndex プロパティを使用してソートの基準となるカラムをインデックスで設定します。
ソートの方法(昇順または降順)を設定するには、カラム(ListColumnInfo)の SortOrder プロパティを使用します。SortOrderは、System.Windows.Forms.SortOrder 型のプロパティです。
SortOrderの値 | 説明 |
---|---|
None | ソートなし |
Ascending | 昇順 |
Descending | 降順 |
次のサンプルコードは、先頭のカラムを基準に昇順でソートします。
C# |
コードのコピー
|
---|---|
GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType gcComboBox1 = new GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType(); // リストボックスにカラムを追加 gcComboBox1.ListColumns.AddRange(new GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo[] { new GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("カラム1"), new GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("カラム2") }); // リストボックスに項目を追加 gcComboBox1.Items.AddRange(new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo[] { new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo(new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo[]{ new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("BBB"), new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("ううう")}), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo(new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo[]{ new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("CCC"), new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("あああ")}), new GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo(new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo[]{ new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("AAA"), new GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("いいい")}) }); // ソートの基準をカラム1に指定し、ソート方法を昇順に設定 gcComboBox1.ListSortColumnIndex = 0; gcComboBox1.ListColumns[0].SortOrder = SortOrder.Ascending; fpSpread1.Sheets[0].Cells[0, 0].CellType = gcComboBox1; |
Visual Basic |
コードのコピー
|
---|---|
Dim gcComboBox1 As New GrapeCity.Win.Spread.InputMan.CellType.GcComboBoxCellType() ' リストボックスにカラムを追加 gcComboBox1.ListColumns.AddRange(New GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo() { New GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("カラム1"), New GrapeCity.Win.Spread.InputMan.CellType.ListColumnInfo("カラム2")}) ' リストボックスに項目を追加 gcComboBox1.Items.AddRange(New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo() { New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo(New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo() { New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("BBB"), New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("ううう")}), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo(New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo() { New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("CCC"), New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("あああ")}), New GrapeCity.Win.Spread.InputMan.CellType.ListItemInfo(New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo() { New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("AAA"), New GrapeCity.Win.Spread.InputMan.CellType.SubItemInfo("いいい")})}) ' ソートの基準をカラム1に指定し、ソート方法を昇順に設定 gcComboBox1.ListSortColumnIndex = 0 gcComboBox1.ListColumns(0).SortOrder = SortOrder.Ascending FpSpread1.Sheets(0).Cells(0, 0).CellType = gcComboBox1 |
ヘッダに用意されたソート機能を使用すれば、アプリケーション実行時にユーザーが動的にソートを行うこともできます。ユーザーにソートを許可するには、 ListHeaderInfo クラスのClickable プロパティをTrue に設定します。
Clickable プロパティをTrueに設定するとヘッダをクリックすることで、クリックしたカラムの内容で項目がソートされます。ヘッダをクリックする毎に並び替えが昇順と降順で切り替わります。項目が昇順でソートされているか、降順でソートされているかは、ヘッダに表示されたソートインジケータの向きで判別することができます。
次のサンプルコードは、ユーザーによるソートを許可します。
C# |
コードのコピー
|
---|---|
// ヘッダをクリックできるように設定 gcComboBox1.ListColumns[0].Header.Clickable = true; gcComboBox1.ListColumns[1].Header.Clickable = true; |
Visual Basic |
コードのコピー
|
---|---|
' ヘッダをクリックできるように設定 gcComboBox1.ListColumns(0).Header.Clickable = True gcComboBox1.ListColumns(1).Header.Clickable = True |