VB.NET コンボボックス 使い方 DataTableの値を要素に追加

VB.NETで、コンボボックスの使い方について紹介していきます。

それでは、さっそく見ていきましょう。

コンボボックスの基本的な使い方

コンボボックス 配置

ツールボックスから、ComboBoxを選択し画面に配置しましょう。

コンボボックス 要素の追加

まずは、最も基本となるコンボボックスの要素の追加方法を見ていきましょう。
コンボボックスの要素を追加する方法は、下記のようになります。

ComboBox.Items.Add(任意名称)

例を見てみましょう。

cmbSportId.Items.Add("")
cmbSportId.Items.Add("野球")
cmbSportId.Items.Add("サッカー")
cmbSportId.Items.Add("バスケット")
cmbSportId.Items.Add("バレー")

「空白」「野球」「サッカー」「バスケット」「バレー」が追加されていますね。
例のように「空白」を追加することもできます。

コンボボックス インデックス番号を取得 選択

コンボボックスのインデックス番号を選択して、値を設定する方法を紹介します。
インデックス番号を選択するには、
ComboBox.SelectedIndex = コンボボックスのインデックス

 

先ほど作成したコンボボックスで、サッカーと表示させる方法

cmbSport.SelectedIndex = 2

と記載することで、「サッカー」が選択されます。

また、今選択しているコンボボックスのインデックスを取得することもできます。

Dim index As Integer = cmbSport.SelectedIndex

コンボボックスの値を覚えておきたい時に使ったります。

コンボボックス 要素の全削除

コンボボックスの要素を一括で削除する方法

cmbSport.Items.Clear()

初期化したい時など使用します。

コンボボックス 指定したインデックスの要素を削除

コンボボックスのインデックスを指定して削除する方法
ComboBox.Items.RemoveAt(インデックス)

cmbSport.Items.RemoveAt(2)

 

コンボボックス DataTableの値を要素に追加

データテーブルの値を、コンボボックスに反映する方法を紹介します。

早速例を見てみましょう。

Dim dt As New DataTable
dt.Columns.Add("sportId")
dt.Columns.Add("sportNm")
Dim dtrow As DataRow

dtrow = dt.NewRow
dtrow("sportId") = "0001"
dtrow("sportNm") = "野球"
dt.Rows.Add(dtrow)

dtrow = dt.NewRow
dtrow("sportId") = "0002"
dtrow("sportNm") = "サッカー"
dt.Rows.Add(dtrow)

dtrow = dt.NewRow
dtrow("sportId") = "0003"
dtrow("sportNm") = "バスケット"
dt.Rows.Add(dtrow)

cmbSport.DataSource = dt
cmbSport.DisplayMember = "sportNm"
cmbSport.ValueMember = "sportId"

cmbSport.SelectedValue = "0003"

解説
1行目~20行目:データテーブルの作成
21行目:DataSourceでデータテーブルの値を取込む
22行目:画面に表示する項目を設定
23行目:リンクさせるための値を設定
25行目:コンボボックスの値を選択

データテーブルの値をコンボボックスに表示することができました。
また、SelectedValueでコンボボックスの内容を選択できます。ValueMemberで指定した項目で選択するようにしましょう。

SQLServerに登録されているデータをデータテーブルに格納し、そのデータテーブルをコンボボックスに表示するパターンが
よくあるので、しっかり押さえておきましょう。

サンプルソース

サンプルソースを載せておきます。

Public Class frmComboBox
    Private Sub frmComboBox_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        '1つめのコンボボックス

        'コンボボックス初期化
        cmbSport.Items.Clear()
        cmbSport.Text = String.Empty

        '要素追加
        cmbSport.Items.Add("")
        cmbSport.Items.Add("野球")
        cmbSport.Items.Add("サッカー")
        cmbSport.Items.Add("バスケット")
        cmbSport.Items.Add("バレー")

        'データ選択
        cmbSport.SelectedIndex = 2

        '2つめのコンボボックス

        'コンボボックス初期化
        cmbSport2.Items.Clear()
        cmbSport2.Text = String.Empty

        'データテーブル作成
        Dim dt As New DataTable
        dt.Columns.Add("sportId")
        dt.Columns.Add("sportNm")
        Dim dtrow As DataRow

        dtrow = dt.NewRow
        dtrow("sportId") = "0001"
        dtrow("sportNm") = "野球"
        dt.Rows.Add(dtrow)

        dtrow = dt.NewRow
        dtrow("sportId") = "0002"
        dtrow("sportNm") = "サッカー"
        dt.Rows.Add(dtrow)

        dtrow = dt.NewRow
        dtrow("sportId") = "0003"
        dtrow("sportNm") = "バスケット"
        dt.Rows.Add(dtrow)

        'コンボボックス設定
        cmbSport2.DataSource = dt
        cmbSport2.DisplayMember = "sportNm"
        cmbSport2.ValueMember = "sportId"

        'データ選択
        cmbSport2.SelectedValue = "0003"

    End Sub

End Class

 

まとめ

今回は、コンボボックスの使い方について紹介しました。
特に、DataTableの連携は覚えておくと便利なので、是非参考にしてみてください。

 

VB.NETの記事一覧

 

 

おすすめの記事