VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 ComboBox Control 関係のメニュー
1.ComboBox コントロールに関するワンポイントテクニック集
2.ComboBox でテキストファイルを使っての読み込み書き込み
3.アイコン付の ComboBox を作成する
4.オーナードローによるComboBoxでの複数列表示 
5.ComboBox 内に指定フォルダー内のファイル一覧を取得表示
6.
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載の ComboBox に関するサンプル 


1.ComboBox コントロールに関するワンポイントテクニック集(17_Cbo_01) (旧、SampleNo.175)
1 .ComboBox に項目を書き込む
2 .テキストボックスに最初に表示して置く項目を設定
3 .ComboBox の指定位置に項目を追加挿入する
4 .ComboBox の項目を削除する
5 .ComboBox 内の指定の項目を書き換える
6 .選択されている項目を取得する
7 .選択されている項目のインデックスを取得する
8 .ComboBox 内の項目を検索し見つかれば選択する
9 .登録されていない項目だけを調べて(検索して)追加書き込みする
10.ドロップダウンリストの表示項目数を変更する
11.ドロップダウンリストの表示・非表示をプログラムから実行
12.ドロップダウンリスト部の表示幅を変更する
13.ComboBox にオートコンプリート機能を設定する
14.
15.
16.
17.
18.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:
追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.ComboBoxに項目を書き込む

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'01.ComboBox に項目を書き込む
    '通常登録件数の少ない場合等は、Form1_Load イベントに直接書く事が多いかと。
    With ComboBox1
        .Items.Add("アワビ")
        .Items.Add("イカ")
        .Items.Add("イクラ")
        .Items.Add("ウニ")
        .Items.Add("エビ")
        .Items.Add("たこ")
        .Items.Add("たまご")
        .Items.Add("鉄火巻き")
        .Items.Add("トロ")
        .Items.Add("ハマチ")
        .Items.Add("マグロ")
    End With
End Sub

VB6.0 や VBA の場合は、Combo1.AddItem "アワビ" のように、AddItem メソッドで項目書き込んでいましたが、VB2005 以降では、Items.Add メソッドを使用します。
ComboBox クラスのメンバーを調べても、Add ではじまるメソッドやプロパティが見つからないので最初はとまどうかも。

このページのトップへ移動します。 2.テキストボックスに最初に表示して置く項目を設定
下記のように初期値に設定したい項目や説明分・タイトル等を、Text プロパティを使って書き込みます。
通常は、最初に項目を書き込んだ時に一緒に設定します。

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'02.テキストボックスに最初に表示して置く項目を設定
    Debug.Print(ComboBox1.SelectedIndex.ToString)   ' -1 (何も記入されていない場合は、-1 が返ります)
    '初期値を設定したい場合はすでに登録済みの項目を記入 
    ComboBox1.Text = "トロ"
    Debug.Print(ComboBox1.SelectedIndex.ToString)   ' 8 (トロの SelectedIndex が返ります)

    '説明文やタイトルを表示するような場合
    ComboBox1.Text = "メニューを選択して下さい。"
End Sub

上記のテスト結果のように既に登録されている項目を設定すると、ComboBox1.SelectedIndex の値が登録されている項目の Indexを返します。

このページのトップへ移動します。 3.ComboBox の指定位置に項目を追加挿入する

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'03.ComboBox の指定位置に項目を追加挿入する
    ComboBox1.Items.Add("最後の位置に追加")
    ComboBox1.Items.Insert(0, "最初の位置に追加")
    ComboBox1.Items.Insert(4, "5項目目に追加")
End Sub

 図1.上記実行結果
 vb2005combobox01_01
このページのトップへ移動します。 4.ComboBox の項目を削除する

Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
'04.ComboBox の項目を削除する

    'ComboBox 内の指定したインデックス位置の項目を削除する場合
    ComboBox1.Items.RemoveAt(3)

    '指定した項目を ComboBox から削除する場合
    ComboBox1.Items.Remove("鉄火巻き")

    'ComboBox からすべての項目を削除する場合
    ComboBox1.Items.Clear()
End Sub

このページのトップへ移動します。 5.ComboBox 内の指定の項目を書き換える

Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
'05.ComboBox 内の指定の項目を書き換える

    'ComboBox 内の指定の項目を書き換える(7項目目の[たまご]をたまご焼きに書き換える)
    ComboBox1.Items(6) = "たまご焼き"
End Sub

このページのトップへ移動します。 6.選択されている項目を取得する

Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
'06.選択されている項目を取得する
    If ComboBox1.SelectedItem Is Nothing Then
        MessageBox.Show("項目がが選択されていません。")
    Else
        Dim si As String = ComboBox1.SelectedItem.ToString()
        MessageBox.Show(si & "が選択されました。")
    End If
End Sub

このページのトップへ移動します。 7.選択されている項目のインデックスを取得する


Private Sub Button7_Click(sender As Object, e As EventArgs) Handles Button7.Click
'07.選択されている項目のインデックスを取得する
    If ComboBox1.SelectedIndex = -1 Then
        MessageBox.Show("項目がが選択されていません。")
    Else
        Dim si As Integer = ComboBox1.SelectedIndex
        MessageBox.Show(si.ToString() & " が選択されました。")
    End If
End Sub

このページのトップへ移動します。 8.ComboBox 内の項目を検索し見つかれば選択する

Private Sub Button8_Click(sender As Object, e As EventArgs) Handles Button8.Click
'08.ComboBox 内の項目を検索し見つかれば選択する
    'FindString メソッド:指定された文字列で始まる ComboBox 内の、最初の項目のインデックスを返します。
    '前方一致検索をするような場合に使用する("" を検索すると 0 が返るので注意)
    Dim x As Integer = ComboBox1.FindString("たま")  ' X = 6
    If x = -1 Then
        MessageBox.Show("(x)項目が見つかりません")
    Else
        ComboBox1.SelectedIndex = x
    End If

    'FindStringExact メソッド:指定した文字列と厳密に一致する項目を検索します。
    '完全一致検索する場合に使用する
    Dim x1 As Integer = ComboBox1.FindStringExact("たま")  ' X1 = -1

    If x1 = -1 Then
        MessageBox.Show("(x1)項目が見つかりません")
    Else
        ComboBox1.SelectedIndex = x1
    End If
End Sub

このページのトップへ移動します。 9.登録されていない項目だけを調べて(検索して)追加書き込みする

Private Sub Button9_Click(sender As Object, e As EventArgs) Handles Button9.Click
'09.登録されていない項目だけを調べて(検索して)追加書き込みする
    With ComboBox1
        Dim x As Integer = -1
        Dim itmDat As String = .Text  'TextBox1.Text
        If itmDat.Length > 0 Then
            x = .FindStringExact(itmDat, x)
            If x <> -1 Then
                MessageBox.Show("すでに登録されています")
                .Text = ""
            Else
                If MessageBox.Show("追加登録しますか?", "追加登録", _
                            MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                    .Items.Add(itmDat)
                    .Text = ""
                End If
            End If
        End If
    End With
End Sub

このページのトップへ移動します。 10.ドロップダウンリストの表示項目数を変更する

Private Sub Button10_Click(sender As Object, e As EventArgs) Handles Button10.Click
'10.ドロップダウンリストの表示項目数を変更する
    ComboBox1.DropDownStyle = ComboBoxStyle.DropDown

    '※ Windows Vista 以降では IntegralHeight プロパティの値を False に設定しておかないと有効にならない。
    ComboBox1.IntegralHeight = False

    Debug.Print(ComboBox1.MaxDropDownItems.ToString)  '既定値 = 8
    ComboBox1.MaxDropDownItems = 4           'ドロップダウン部分に表示される項目数を4に設定
End Sub

このページのトップへ移動します。 11.ドロップダウンリストの表示・非表示をプログラムから実行

Private Sub Button11_Click(sender As Object, e As EventArgs) Handles Button11.Click
'11.ドロップダウンリストの表示・非表示をプログラムから実行
    ComboBox1.DropDownStyle = ComboBoxStyle.DropDown
    ComboBox1.DroppedDown = Not ComboBox1.DroppedDown
End Sub

このページのトップへ移動します。 12.ドロップダウンリスト部の表示幅を変更する

Private Sub Button12_Click(sender As Object, e As EventArgs) Handles Button12.Click
'12.ドロップダウンリスト部の表示幅を変更する
    ComboBox1.DropDownWidth += 50
End Sub

このページのトップへ移動します。 13.ComboBox にオートコンプリート機能を設定する

通常は、初期設定の場面で設定して下さい。

Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
'13.ComboBox にオートコンプリート機能を設定する
    'オートコンプリートの設定(VB2005からの機能)
    ComboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend
    'オートコンプリートで使用する文字列のソースを登録済みのリストに設定(別途、読み込んだテキストファイルでも可)
    ComboBox1.AutoCompleteSource = AutoCompleteSource.ListItems
End Sub

 図2.上記実行結果
 vb2005combobox01_02

このページのトップへ移動します。 14.


このページのトップへ移動します。 15.


このページのトップへ移動します。 16.


このページのトップへ移動します。 17. 



このページのトップへ移動します。 18.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)





このページのトップへ移動します。