PowerTools InputMan for Windows Forms 8.0J > InputManの使い方 > コンボコントロール > 項目の設定 > データソースに接続 |
データソースを使用してコンボコントロールのリストボックスに項目を設定する方法について解説します。Items プロパティにコレクションを追加して項目を設定する方法については「コレクションに追加」を参照してください。
なお、接続するデータベースは、製品に付属しているSample.mdbを前提にしています。
データベース内のデータをリストボックスに表示する場合は、DataSourceプロパティに該当するデータセットを設定します。 |
データ ソース構築ウィザードを使用してプロジェクトにデータソースを追加します。
データベース内のデータをコンボコントロールに表示する場合は、データベースから作成したDataSet をDataSource プロパティに設定します。 AutoGenerateColumns プロパティがTrueに設定されていると、コンボコントロールは、DataSouce プロパティを設定するだけで自動的にカラムが生成されてデータが接続されます。
前項のようにプロパティを設定するほかに、データソースウィンドウからドラッグ&ドロップして簡単にデータに接続したコントロールを貼り付けることもできます。
以下は、コーディングでデータベースの内容をコンボコントロールに表示する例です。
Imports System.Data.OleDb Imports GrapeCity.Win.Editors ' DataSetオブジェクトを作成します。 Friend aConn As OleDbConnection = New OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ + "Data Source= C:\Program Files\InputManWin8\Data\Sample.mdb;") Friend aDA As OleDbDataAdapter = New OleDbDataAdapter( _ "SELECT * FROM [会社]", aConn) Friend aDS As DataSet = New DataSet() aDA.Fill(aDS) ' DataSetオブジェクトをDataSourceプロパティに設定します。 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' DataSetオブジェクトを設定します。 GcComboBox1.DataSource = aDS.Tables(0) End Sub
using System.Data.OleDb; using GrapeCity.Win.Editors; // DataSetオブジェクトを作成します。 private OleDbConnection aConn = new OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source= C:\\Program Files\\InputManWin8\\Data\\Sample.mdb;"); private OleDbDataAdapter aDA = new OleDbDataAdapter( "SELECT * FROM [会社]", aConn); private DataSet aDS = new DataSet(); aDA.Fill(aDS); // DataSetオブジェクトをDataSourceプロパティに設定します。 private void button1_Click(object sender, System.EventArgs e) { // DataSetオブジェクトを設定します。 gcComboBox1.DataSource = aDS.Tables[0]; }
特定フィールドのデータのみ表示する場合は、AutoGenerateColumns プロパティをFalseに設定します。カラムを追加し、バインドするデータのプロパティ名をListColumn クラスのDataPropertyName プロパティで設定します。
カラムを追加する方法については「カラムの設定」を参照してください。
次のサンプルコードでは、前項で接続したデータソース(会社テーブル)の特定のデータをコンボコントロールのドロップダウンリストに表示する例を示します。
' 自動カラム生成を禁止し、データソースに接続します。 GcComboBox1.AutoGenerateColumns = False GcComboBox1.DataSource = Me.会社BindingSource ' カラムを作成します。 Dim lc1 As New GrapeCity.Win.Editors.ListColumn("会社名") lc1.DataPropertyName = "会社名" Dim lc2 As New GrapeCity.Win.Editors.ListColumn("電話番号") lc2.DataPropertyName = "TEL" ' コンボコントロールにカラムを追加します。 GcComboBox1.ListColumns.Add(lc1) GcComboBox1.ListColumns.Add(lc2)
// 自動カラム生成を禁止し、データソースに接続します。 gcComboBox1.AutoGenerateColumns = false; gcComboBox1.DataSource = this.会社BindingSource; // カラムを作成します。 GrapeCity.Win.Editors.ListColumn lc1 = new GrapeCity.Win.Editors.ListColumn("会社名"); lc1.DataPropertyName = "会社名"; GrapeCity.Win.Editors.ListColumn lc2 = new GrapeCity.Win.Editors.ListColumn("電話番号"); lc2.DataPropertyName = "TEL"; // コンボコントロールにカラムを追加します。 gcComboBox1.ListColumns.Add(lc1); gcComboBox1.ListColumns.Add(lc2);