VB.Net コンボBox 例による制御

⚡ スマートサマリー

コンボBox VB.Net では Windows テキストボックスとドロップダウンリストを組み合わせたフォームコントロール。ユーザーが単一の項目を選択したり、入力したりできるため、フォーム上のスペースを節約できます。

  • 🎯 目的: ユーザーが値を選択または入力できるドロップダウンリストを表示します。
  • ➕ アイテムを追加: プロパティ ウィンドウのコンボボックスにデータを入力するか、実行時に Items.Add を使用してデータを入力します。
  • 🔍 選択項目を読む: SelectedItem、SelectedIndex、およびTextは、ユーザーが選択した値を返します。
  • 🗄️ バインドデータ: データセットから行を読み込むには、DataSource、DisplayMember、およびValueMemberを設定します。
  • 🔔 変更を検出する: SelectedIndexChanged イベントは、選択されたアイテムが変更されるたびに発生します。
  • 🤖 AIによる支援: GitHub Copilot と Visual Studio IntelliCode コンボを書くBox 入力と同時にハンドラーが起動します。

VB.Net コンボBox 管理

コンボボックスコントロールとは何ですか?

コンボボックス コントロールを使用すると、多くの項目を含むドロップダウン リストを表示できます。これは、ユーザーがテキストを入力するテキスト ボックスと、ユーザーが項目を選択するドロップダウン リストの組み合わせと考えてください。コンボボックスには、一度に 1 つの項目が表示されることに注意してください。

コンボボックスの作成

コンボBox 次のように作成できます。

ステップ1)新しいアプリケーションを作成します。

ステップ2)ツールボックスからコンボボックスコントロールをフォームにドラッグします。

VB.Net コンボボックス コントロールをツールボックスからドロップして Windows フォーム

コンボボックス コントロールが作成されます。

コンボボックスにアイテムを追加する

コンボボックスを作成したので、そこに項目を追加する方法を説明します。

Double 追加したコンボボックス コントロールをクリックします。デザイン タブからコードのあるタブに移動します。

コンボ ボックス コントロールに項目を追加するには、Items プロパティを使用します。コンボ ボックスに Male と Female という 2 つの項目を追加して、これを実証してみましょう。

ComboBox1.Items.Add("Male")
ComboBox1.Items.Add("Female")

プロパティ ウィンドウからデザイン時にコンボボックスに項目を追加することもできます。手順は次のとおりです。

ステップ1)デザインタブを開き、コンボボックスコントロールをクリックします。

ステップ2)プロパティウィンドウに移動し、「アイテム」オプションを表示します。

ステップ3)(コレクション)の右側にある…をクリックします。

VB.NetのコンボボックスにItems.Addメソッドを使用してコードで項目を追加する

VB.Netのプロパティウィンドウでコンボボックスのアイテムコレクションエディターを開く

ステップ4)新しいウィンドウが表示されます。ここに、以下に示すようにコンボボックスに項目を追加してください。

文字列コレクションエディタで男性と女性のコンボボックス項目を一覧表示

ステップ5)tyが完了したらping 項目を選択したら、「OK」ボタンをクリックしてください。

ステップ6)上部のツールバーからスタートボタンをクリックし、コンボボックスのドロップダウンアイコンをクリックします。

VB.Net コンボボックスで、実行時に「男性」がデフォルト項目として選択されていることを示す。

項目がコンボボックス コントロールに正常に追加されました。

コンボボックス項目の選択

フォームがロードされたときに選択されるデフォルトの項目を設定する必要がある場合があります。これは、SelectedItem() メソッドを使用して実現できます。たとえば、デフォルトで選択される性別を男性に設定するには、次のステートメントを使用できます。

ComboBox1.SelectedItem = "Male"

コードを実行すると、コンボボックス コントロールは次のようになります。

VB.Netフォームで男性と女性のオプションを含むコンボボックスを表示する

コンボボックスの値を取得する

コンボボックスから選択された項目を取得できます。これは、textプロパティを使用することで可能です。上記のコンボボックス(項目は男性と女性)を使って、この方法を説明しましょう。以下の手順に従ってください。

ステップ1) Double コンボボックスをクリックすると、VB.Netコードを含むタブが開きます。

ステップ2)以下のコードを追加します。

Public Class Form1
    Private Sub ComboBox1_SelectedIndexChanged(sd As Object, evnt As EventArgs) Handles ComboBox1.SelectedIndexChanged

        Dim var_gender As String

        var_gender = ComboBox1.Text

        MessageBox.Show(var_gender)
		
    End Sub
End Class

ステップ3)ツールバーの「開始」ボタンをクリックしてコードを実行します。すると、次のフォームが表示されます。

Code VB.Net コンボボックスの SelectedIndexChanged イベントハンドラーのスクリーンショット

ステップ4)ドロップダウンボタンをクリックして性別を選択します。私の場合は男性を選択すると、次のようになります。

VB.Net メッセージボックスに選択されたコンボボックス項目のテキスト「男性」を表示

コードのスクリーンショットは次のとおりです。

の説明 Code:

  1. Form1 という名前のクラスを作成します。 アクセス修飾子が Public に設定されているため、クラスはパブリックにアクセス可能になります。
  2. Comboという名前のサブプロシージャを開始しますBox1_SelectedIndexChanged。これは、デザイン タブからコンボボックス コントロールをダブルクリックすると自動的に生成されます。このサブプロシージャは、コンボボックスから項目を選択すると呼び出されます。sd As Object はイベントを発生させたオブジェクトを参照し、evnt As EventArgs はイベント データを保持します。
  3. var_genderという名前の文字列変数を作成します。
  4. 変数 var_gender の値をコンボボックスで選択された項目に設定します。
  5. 変数 var_gender の値をメッセージに表示するBox.
  6. コンボの終わりBox1_SelectedIndexChanged サブプロシージャ。
  7. Form1 クラスの終わり。

コンボボックス項目の削除

コンボボックスから項目を削除することができます。これを行うには 2 つの方法があります。項目のインデックスまたは項目の名前のいずれかを使用できます。

項目インデックスを使用する場合は、以下に示すように Items.RemoveAt() プロパティを使用する必要があります。

ComboBox1.Items.RemoveAt(1)

上記の例では、コンボボックスのインデックス 1 にある項目を削除しています。コンボボックスのインデックスはインデックス 0 から始まることに注意してください。つまり、上記のコマンドはコンボボックスの XNUMX 番目の項目を削除します。

名前を使用して項目を削除するには、以下に示すように Items.Remove() プロパティを使用する必要があります。

ComboBox1.Items.Remove("Female")

上記のコードは、コンボから Female という名前のアイテムを削除する必要があります。Box1.

バインディングデータソース

コンボBox データセットから入力できます。 以下の SQL クエリを考えてみましょう。

select emp_id, emp_name from employees; 

プログラム内でデータソースを作成し、次のコードを使用してバインドすることができます。

comboBox1.DataSource = ds.Tables(0)
comboBox1.ValueMember = "emp_id"
comboBox1.DisplayMember = "emp_name"

これにより、個々の項目を入力しなくても、コンボボックス コントロールにデータを簡単に入力できるようになります。

SelectedIndexChanged イベント

ユーザーが新しい値を選択した瞬間にプログラムが反応するようにしたい場合がよくあります。

このタイプのイベントは、コンボボックスで選択した項目を変更したときに呼び出されます。コンボボックスで選択した項目の変更時にアクションを実装する必要がある場合に使用するイベントです。例を使用してこれを説明します。

ステップ 1) 新規作成 Windows フォームアプリケーション。

ステップ2)次に、2つのコンボボックスコントロールをフォームにドラッグアンドドロップする必要があります。

VB.Net 上でコンボボックス コントロール 2 つを並べて配置 Windows フォーム

ステップ3) Double フォーム内をクリックしてコードのタブを開きます。次のコードを入力します。

Public Class Form1
    Private Sub Form1_Load(sd As Object, evnt As EventArgs) Handles MyBase.Load

        ComboBox1.Items.Add("Males")

        ComboBox1.Items.Add("Females")

    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged

        ComboBox2.Items.Clear()

        If ComboBox1.SelectedItem = "Males" Then

            ComboBox2.Items.Add("Nicholas")

            ComboBox2.Items.Add("John")

        ElseIf ComboBox1.SelectedItem = "Females" Then

            ComboBox2.Items.Add("Alice")

            ComboBox2.Items.Add("Grace")

        End If
    End Sub
End Class

ステップ4)上部のバーにある「開始」ボタンをクリックしてコードを実行します。以下の出力が表示されるはずです。

フォーム読み込み時に、最初のコンボボックスに男性と女性の選択肢が設定されます。

ステップ5)最初のコンボボックスのドロップダウンボタンをクリックして「男性」を選択します。マウスカーソルを2番目のコンボボックスに移動し、そのドロップダウンボタンをクリックします。利用可能な項目を確認してください。

「男性」が選択された後、ニコラスとジョンを表示する2番目のコンボボックス。

ステップ6)最初のコンボボックスに移動して選択する 女性2番目のコンボボックスに移動して、利用可能なアイテムを確認してください。

「女性」が選択された後、アリスとグレースを表示する2番目のコンボボックス

コードのスクリーンショットは次のとおりです。

Code 2つのコンボボックスのVB.Net SelectedIndexChangedハンドラーのスクリーンショット

の説明 Code:

  1. Form1 という名前のクラスを作成します。
  2. Form1_Load() という名前のサブルーチンの開始。これはフォームが読み込まれると実行されます。sd As Object はイベントを発生させたオブジェクトを参照し、evnt As EventArgs はイベントデータを保持します。
  3. アイテム「男性」をコンボに追加するBox1.
  4. アイテム「女性」をコンボに追加するBox1.
  5. Form1_Load() サブプロシージャの終了。
  6. Combo という名前のサブプロシージャの開始Box1_SelectedIndexChanged()。これは、最初のコンボ ボックスで項目が選択されたときに呼び出されます。sender As Object はイベントを発生させたオブジェクトを参照し、e As EventArgs にはイベント データが含まれます。
  7. コンボを作るBox2 空の場合は、すべてのアイテムをクリアします。
  8. 条件を作成します。 選択したアイテムがコンボ上にあるかどうかを確認するBox1は男性です。
  9. アイテム「ニコラス」をコンボに追加Box2 上記の条件が true の場合、つまりコンボでアイテムが選択されている場合Box1は男性です。
  10. アイテム「ジョン」をコンボに追加Box2 上記の条件が true の場合、つまりコンボでアイテムが選択されている場合Box1は男性です。
  11. 条件を作成します。 選択したアイテムがコンボ上にあるかどうかを確認するBox1は女性です。
  12. アイテム「アリス」をコンボに追加Box2 上記の条件が true の場合、つまりコンボでアイテムが選択されている場合Box1は女性です。
  13. アイテム「グレース」をコンボに追加Box2 上記の条件が true の場合、つまりコンボでアイテムが選択されている場合Box1は女性です。
  14. If ブロックの終わり。
  15. コンボの終わりBox1_SelectedIndexChanged() サブプロシージャ。
  16. クラス Form1 の終わり。

よくあるご質問

コンボBox 矢印がクリックされるまでリストを非表示にしてスペースを節約し、入力を受け付けることができます。リストBox すべてのアイテムを一度に表示し、選択のみを可能にします。

DropDownStyle は動作を選択します。DropDown (デフォルト) では、ユーザーが自由にテキストを入力できます。DropDownList では、入力がリスト内の項目に制限されます。Simple では、リストが常に開いたままになります。

SelectedIndex はゼロから始まる位置を返し、SelectedItem はその行にバインドされたオブジェクトを返し、Text はユーザーが入力したテキストを含む編集ボックス内の文字列を返します。

コールコンボBox1.Items.Clear() を使用してリストを空にします。編集ボックスに表示されるテキストもリセットするには、Combo を続けて使用します。Box1.SelectedIndex = -1 またはコンボを設定しますBox1.テキスト = String.Empty。

プロパティ ウィンドウまたはコード (コンボボックス) で DropDownStyle プロパティを DropDownList に設定します。Box1.ドロップダウンスタイル = コンボBoxStyle.DropDownList)。ユーザーはリストに既に存在する項目のみを選択できます。

TextChanged イベントは、ユーザーがテキストボックス部分を編集している間に発生します。SelectedIndexChanged イベントは、ドロップダウンリストでハイライト表示されている項目が、マウス、キーボード、またはコードによって変更された場合にのみ発生します。

Yes. GitHubコパイロット 平易な英語のコメントを完全な SelectedIndexChanged または DataBindings ブロックに変換します。出荷前に必ず生成されたコードを確認してください。ping.

はい。Visual Studio 2026 は Copilot と インテリCode コンボの行全体、コンテキスト認識による補完Box プロパティとイベント。