PowerTools SPREAD for Windows Forms 10.0J > 開発者ガイド > セル型 > グラフィカルなセル型 > マルチカラムコンボボックス型セル |
複数列のドロップダウンリストを表示するコンボボックス型セルを作成できます。リストに表示された値の選択だけでなく、値の入力をユーザーに許可できます。リスト内の項目、常に表示する項目数を指定できます。
マルチカラムコンボボックス型セルとその各属性を設定するには、MultiColumnComboBoxCellTypeクラスを使用します。
マルチカラムコンボボックス型セルの表示をカスタマイズするには、以下のプロパティを使用します。
プロパティ | カスタマイズ |
---|---|
BackgroundImage | セルの背景画像を設定します。 |
ButtonAlign | ボタンを表示する位置を設定します。 |
ColumnEdit | リスト内で編集領域として使用される列を設定します。 |
DataColumn | リスト内でデータ列として使用する列を設定します。 |
DataSourceList | セルのリスト部分に使用するデータソースを設定します。 |
ListAlignment | エディタのどの部分にリストを揃えて表示するかを設定します。 |
ListOffset | エディタからのリストのオフセットを設定します。 |
ListWidth | リストの幅を設定します。 |
MaxDrop | リスト内に一度に表示される最大項目数を設定します。 |
StringTrim | セル幅に収まらない文字を切り取る方法を設定します。 |
SubEditor | サブエディタを設定します。 |
マルチカラムコンボボックス型セルの操作をカスタマイズするには、以下のプロパティを使用します。
プロパティ | 操作 |
---|---|
AcceptsArrowKeys | セルによって矢印キーが処理される方法を設定します。 |
AutoSearch | 文字キーの入力に応じて、コンボボックス型セルのリスト項目が検索される方法を設定します。 |
DataColumn | リスト内でデータ列として使用する列を設定します。 |
DataSourceList | セルのリスト部分に使用するデータソースを設定します。 |
Editable | セルの編集可能領域へのユーザーの入力を許可します。 |
MultiColumnComboBoxCellTypeクラスが持つプロパティのほか、FpSpreadクラスのButtonDrawModeプロパティが、マルチカラムコンボボックスの動作に影響を与えます。このプロパティは、コマンドボタン型セル、およびコンボボックス型セルでも有効です。ドロップダウンボタンを常時表示するのか、または現在の行、列、およびセル内でのみ表示するのかを設定できます。
特定のセル型において、一部のグラフィカル要素がビジュアルスタイルの影響を受けることに注意してください。 FpSpreadクラスのVisualStylesプロパティを「Off」に設定すると、これらのグラフィカルなセル型の視覚的なカスタマイズを、指定したとおりに機能させることができます。詳細については、「ビジュアルスタイル」を参照してください。 1つの列から成る、標準コンボボックス型セルの詳細については、「コンボボックス型セル」を参照してください。 |
MultiColumnComboBoxCellTypeクラスのインスタンスを作成して、クラスの各プロパティを設定します。マルチカラムコンボボックスのリストに項目を表示するには、DataSourceListプロパティにリストのデータソースを設定します。DataColumnプロパティに、セルの値として使用するデータソースの列をインデックスで設定します。ColumnEditプロパティに、セルに表示する(編集を許可する場合は、編集の対象となる)データソースの列をインデックスで設定します。列をインデックスではなく名前で指定する場合は、DataColumnNameおよびColumnEditNameプロパティを使用します。MaxDropプロパティを使用すると、リストに一度で表示する項目の最大数を設定できます。設定した数以上の項目が存在する場合、リストにスクロールバーが表示れます。
セルに設定する場合はCellクラスの、行に設定する場合はRowクラスの、列に設定する場合はColumnクラスの、あるいはスタイルに設定する場合はStyleInfoクラスのCellTypeプロパティに、定義したMultiColumnComboBoxCellTypeクラスのインスタンスを割り当てます。
次のサンプルコードは、セルをマルチカラムコンボボックス型セルに設定します。
C# |
コードのコピー
|
---|---|
string conStr = "Provider=Microsoft.JET.OLEDB.4.0;data source=C:\\AccessData\\Patients2000.mdb"; string sqlStr = "SELECT * FROM Patients"; System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(conStr); DataSet ds = new DataSet(); System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter(sqlStr, conn); da.Fill(ds); FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType mcb = new FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType(); mcb.DataSourceList = ds; mcb.DataColumn = 2; mcb.ColumnEdit = 2; mcb.ButtonAlign = FarPoint.Win.ButtonAlign.Left; mcb.ListAlignment = FarPoint.Win.ListAlignment.Right; mcb.ListWidth = 500; mcb.ListOffset = 5; mcb.MaxDrop = 5; fpSpread1.ActiveSheet.Cells[0, 0].CellType = mcb; |
Visual Basic |
コードのコピー
|
---|---|
Dim conStr As String = "Provider=Microsoft.JET.OLEDB.4.0;data source=C:\AccessData\Patients2000.mdb" Dim sqlStr As String = "SELECT * FROM Patients" Dim conn As New System.Data.OleDb.OleDbConnection(conStr) Dim ds As DataSet = New DataSet() Dim da As New System.Data.OleDb.OleDbDataAdapter(sqlStr, conn) da.Fill(ds) Dim mcb As New FarPoint.Win.Spread.CellType.MultiColumnComboBoxCellType() mcb.DataSourceList = ds mcb.DataColumn = 1 mcb.ButtonAlign = FarPoint.Win.ButtonAlign.Left mcb.ListWidth = 500 mcb.ListOffset = 5 mcb.MaxDrop = 5 FpSpread1.ActiveSheet.Cells(0, 0).CellType = mcb |