【VB.NET】DataGridViewコントロールにコンボボックスを表示するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、DataGridViewコントロールにコンボボックスを表示する方法をご紹介します。

DataGridViewコントロールにコンボボックスを表示する

  • DataGridViewコントロールにコンボボックスを表示するには、DataGridViewComboBoxColumn.Itemsプロパティを使います。
  • DataGridViewComboBoxColumn.Itemsプロパティの設定方法は、プロパティウィンドウを使う方法と、プログラムに記述する方法があります。
  • それぞれの設定方法は以下になります。

プロパティウィンドウでの設定

列ごとに設定するプロパティウィンドウの表示

フォームの「DataGridView」コントロールを選択します。

 

「DataGridView」コントロールの「▶」部分をクリックします。

 

「列の編集」を選択します。

 

「追加」ボタンをクリックします。

 

①型「DataGridViewComboBoxColumn」を選択⇒②ヘッダーテキスト「種類」と入力⇒③「追加」ボタンをクリックします。

 

すると、「選択された列」項目に表示されます。

 

コンボボックスのリストに表示する項目を設定

「プロパティウィンドウ」にて、Items右端の「…」の部分をクリックします。

 

①コンボボックスのリストに表示する項目を入力⇒②「OK」ボタンをクリックします。

 

表示列の移動

上矢印ボタンをクリックし、コンボボックスの表示列を先頭に移動します。

 

「OK」ボタンをクリックすると、「DataGridView」コントロールにコンボボックスが追加されます。

 

プログラムでの設定

  • プログラムで設定する際の書式は、以下になります。

DataGridViewComboBoxColumn.Items.Add(リストに追加する文字列)

  • また、DataGridViewコントロールの指定した場所に列を挿入するには、DataGridViewColumnCollection.Insertメソッドを使います。
  • 書式は、以下になります。

DataGridView.Columns.Insert(挿入する場所を列インデックスで指定 , 挿入するDataGridViewColumn)

サンプルプログラム

2 「注文データを表示」ボタンクリック時に以下処理を行う。
4~7 接続先データベースの情報を、変数に代入。
9 DataGridViewComboBoxColumn型の変数「column」を宣言、インスタンス化。
13~16 「DataGridView」コントロールのコンボボックスに設定する項目を追加。
18 「DataGridView」コントロールの1列目に列を挿入する。
20 「DataGridView」コントロールの列ヘッダーに「種類」を表示する。
22 SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
24~28 ConnectionStringプロパティにデータベース情報を設定。
30 データベースに接続。
32 SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
34 SQL文を実行するために、24~28行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。
36~40
レコードを抽出するSQL文をCommandTextプロパティに設定。
39行目の「@」マークは、以下42~43行目で設定するパラメータを使用する際に記述します。
42 「SalesOrderHeader」テーブルの「SalesOrderID」列の開始番号に、値「71774」を設定する。
43 「SalesOrderHeader」テーブルの「SalesOrderID」列の終了番号に、値「71816」を設定する。
45 SQL文(SalesOrderID列の値が71774~71816までのレコードを抽出する)を実行し、実行結果をSqlDataReader型の変数「dread」に代入。
47 変数「dread」の値が「True」の間(抽出したレコード件数分)、以下処理を繰り返す。
52 「SalesOrderID」列の列番号を取得し、Integer型の変数「iIdx」に代入。
53 「SalesOrderID」列の値を取得し、String型の変数「SalesOrder_ID」に代入。
55 「OrderDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
56 「OrderDate」列の値を取得し、String型の変数「Order_Date」に代入。
58 「DueDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
59 「DueDate」列の値を取得し、String型の変数「Due_Date」に代入。
61 「SalesOrderNumber」列の列番号を取得し、Integer型の変数「iIdx」に代入。
62 「SalesOrderNumber」列の値を取得し、String型の変数「SalesOrder_Number」に代入。
64 DataGridViewコントロールにデータを表示する。(コンボボックスにはデータを表示しないので「Empty値」を設定)
70 DataGridViewコントロールの1列目(コンボボックス)の幅を70ピクセルにする。
72 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。
76 処理の実行中にエラーが発生した場合、
78 エラー内容を取得し、ラベルに表示する。

関連記事

DataGridViewコントロールのコンボボックスで選択した値を取得する

【VB.NET】DataGridViewコントロールのコンボボックスで選択した値を取得するには?

DataGridViewコントロールにチェックボックスを表示する

【VB.NET】DataGridViewコントロールにチェックボックスを表示するには?

DataGridViewコントロールにボタンを表示する

【VB.NET】DataGridViewコントロールにボタンを表示するには?

DataGridViewコントロールの列の幅を変更する

【VB.NET】DataGridViewコントロールの列の幅を変更するには?

DataGridViewコントロールにデータを表示する

【VB.NET】DataGridViewコントロールにデータを表示するには?

テーブルのデータを抽出する

【VB.NET】テーブルのレコードを抽出するには?

データベースに接続

【VB.NET】データベースに接続するには?

Usingステートメント

【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する

構造化例外処理

【VB.NET】構造化例外処理とは?

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら