1. ホーム
  2. スクリプト・コラム
  3. vbs

ComboBoxコントロールの使用方法に関するチュートリアル

2022-02-08 01:19:15

先ほどListBoxコントロールの使い方を学びましたが、vb.netにはListBoxコントロールとよく似たコントロールがもう一つあります - ComboBoxコントロール、別名コンボボックスとも呼ばれます。ComboBoxコントロールは、上部のリスト項目を入力するテキストボックスと、テキストボックスの下にある、選択可能な項目リストを表示するリストボックスの2つの部分から構成されています

  コンボボックスコントロールとリストボックスコントロールは機能が似ており、多くの場合、この2つのコントロールは同じように使用できますが、特定のコンテキストで1つのコントロールのみが適切である状況もあります。

  一般に、ComboBox コントロールは、コントロールによってリストされたオプションを選択するように勧められる一方で、ユーザーはリストに存在しないオプションをテキストボックスに入力することができる場合に適しており、ListBox コントロールは、リスト内のオプションのみを選択するように制限されている場合に適している。

  ユーザーインターフェースの面では、コンボボックスコントロールはデフォルトでドロップダウンリストボックスを備えているため、リストボックスコントロールよりもフォームの占有面積が小さく、リスト項目が多い状況での使用に適しています。下の図3は、QQの個人設定変更のインターフェースですが、ComboBoxコントロールを多用することで、ユーザーインターフェースをシンプルに保ち、より多くの選択肢に対応できるようにしています。

 このように、コンボボックス・コントロールはリストボックス・コントロールよりも柔軟で多目的に使用することができます。

I. コンボボックス・コントロールの共通プロパティ。

  1. BackColorプロパティです。コンボボックスコントロールの背景色を取得または設定します。

  2. DropDownStyle プロパティ。指定されたコンボボックスのスタイルの値を取得または設定します。このスタイルによって、ユーザーがテキストセクションに新しい値を入力できるかどうか、リストセクションが常に表示されるかどうかが決定されます。次の表に示すように、3つの値があり、デフォルト値はDropDownである。

メンバー名 説明

DropDownのテキスト部分は編集可能です。リスト部分を表示するには、ユーザーが矢印ボタンをクリックする必要があります。

DropDownList ユーザーはテキストセクションを直接編集することはできません。ユーザーは、リストセクションを表示するために矢印ボタンをクリックする必要があります。

シンプル テキスト部分は編集可能です。リスト部分は常に表示されています。

  3. DropDownWidthプロパティ。コンボボックスのドロップダウン部分の幅(ピクセル単位)を取得または設定するために使用します。一部のリスト項目は長すぎるため、クラステーブル項目のすべてのテキストを表示するには、このプロパティを変更する必要があります。DropDownWidthの値が設定されていない場合、このプロパティはコンボボックスの幅を返すようになります。注意すべきは、ドロップダウン部の幅はコンボボックスの幅より小さくできないので、DropDownWidthの値をコンボボックスの幅より小さく設定しても、ドロップダウンリストボックスの幅は、テキストボックスの幅と同じであることです。

       4. DroppedDown プロパティ。コンボボックスがドロップダウン部分を表示しているかどうかを示す値を取得または設定します。デフォルトはfalseである。

  5. IntegralHeightプロパティ。エディットボックスまたはリストボックスコントロールの高さを自動的に調整して、コントロール内の最後の項目が正しく表示されるようにするかどうかを指定します。テキストボックスコントロールの高さを自動的に調節して、テキスト行を表示するかどうかを指定する。設計時に使用可能で、実行時は読み取り専用です。デフォルトはFalseである。リストボックスコントロールの高さが適切でない場合、コントロール内のテキストの最終行は部分的にしか表示されない。IntergralHeight を "True" に設定すると、コントロールの高さが自動的に調整され、コントロール内の最後の項目が正しく表示されるようになります。注意:IntergralHeight プロパティを "True" に設定すると、Height プロパティの値はコントロールの真の高さと一致しない場合があります。

  6. Itemsプロパティです。コンボボックスに含まれるアイテムの集合を表すオブジェクトを取得します。詳しい使い方は後述します。

  7、MaxDropDownItemsプロパティ:ドロップダウン部に表示可能な項目の最大数。このプロパティの最小値は1、最大値は100である。

  8. Text プロパティ。コンボボックスコントロールのテキスト入力ボックスに表示されるテキストです。

  9. SelectedIndex プロパティと SelectedItem プロパティです。SelectedIndex プロパティは、現在選択されているリスト項目のインデックスを示す整数値を返し、プログラムによって変更することができ、リスト内の対応する項目がコンボボックスのテキストボックスに表示されます。項目が選択されていない場合、SelectedIndex は -1 であり、項目が選択されている場合、SelectedIndex は 0 から始まる整数値です。 SelectedItemプロパティは、SelectedIndexプロパティと似ていますが、SelectedItemプロパティは項目を返す点が異なります。

  10. SelectedText プロパティ。コンボボックスで現在選択されているテキストを示す文字列。DropDownStyleがComboBoxStyle.DropDownListに設定されている場合、戻り値は空文字列("")である。Text を指定すると、コンボボックスで現在選択されている文字列を変更することができます。コンボボックスで現在選択されている文字列がない場合、このプロパティは長さ0の文字列を返します。このプロパティをコンボボックスコントロールのマウスイベントで検証するには、次のコードを使用します。

Private Sub ComboBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ComboBox1.MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ComboBox1.MouseUp。   MessageBox.Show(ComboBox1.SelectedText)を表示する。   End Sub

  返される値は、マウスで選択したテキストです。

  対応するSelectionLengthプロパティはテキストの文字数を返し、SelectionStartプロパティはコンボボックスで選択されたテキストの開始位置を返します。

  II. コンボボックス・コントロールの重要なメソッド。

  1. BeginUpdateメソッドとEndUpdateメソッドです。Add メソッドを使用してアイテムを 1 つずつ追加する場合、リストにアイテムを追加するたびにコントロールがコンボボックスを再描画するのを防ぐために BeginUpdate メソッドを使用してください。リストに多数の項目を追加する場合、このメソッドを使用して項目を追加すると、ComboBoxの描画時にちらつきが発生しなくなります。次のようなコードになります。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  Dim i As Integer = 0
  ComboBox1.BeginUpdate()
  For i = 0 To 999
  ComboBox1.Items.Add("Item " &ComboBox1.Items.)
  Next
  ComboBox1.EndUpdate()
  End Sub

  2. Addメソッド:itemsプロパティのメソッドの一つで、一般に以下のように使用される。

ComboBox1.Items.Add("Item 0" )

  また、itemsプロパティのClearメソッドを使用すると、すべてのリスト項目をクリアすることができます。

  3. FindString メソッドと FindStringExact メソッドです。

  FindString メソッドは、ComboBox で指定された文字列で始まる最初の項目を検索するために使用されます。このメソッドはファジー クエリですが、見つかった文字列は一致するアイテムの先頭にある必要があります。

  FindStringExactメソッドは、指定された文字列と完全に一致するものを見つけるために使用されます。

  4. GetItemText メソッド。指定された項目のテキスト表現を返します。以下の形式で使用します。

  GetItemText(item)

III. 例

  ここでは、コンボボックスコントロールの使い方をコードで見てみましょう。コンボボックスコントロール、4つのボタンコントロール、テキストボックスコントロール、グループボックスコントロールをフォームに追加し、下の図4のようなレイアウトで表示させます。

1. Add 1000 items"ボタンのClickイベントに以下のコードを追加してください。

Dim i As Integer = 0
  ComboBox1.BeginUpdate()
  For i = 0 To 999
  ComboBox1.Items.Add("Item " &(ComboBox1.Items.Count + 1).ToString)
  Next
  ComboBox1.EndUpdate()

  2. 2.以下のコードを、"Add an item" ボタンのClickイベントに追加します。

 ComboBox1.Items.Add(TextBox1.Text)

  つまり、テキストボックスに入力されたテキストが、項目のテキストとして使用されるのです。

  3. Find Fuzzy Matches"ボタンのクリックイベントに以下のコードを追加してください。

 ComboBox1.SelectedIndex = ComboBox1.FindString(TextBox1.Text)

  つまり、テキストボックスに入力されたテキストで始まる最初の項目をコンボボックスコントロールの選択項目として返します。

  4. 4. 次のコードを "Find Exact Match" ボタンのクリックイベントに追加してください。  

ComboBox1.SelectedIndex = ComboBox1.FindStringExact(TextBox1.Text)

  つまり、テキストボックスに入力されたテキストと完全に一致する項目が、コンボボックスコントロールの選択項目として返されます。

  5. 5. ComboBox1のSelectedIndexChangedイベントに以下のコードを追加します。

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.
  Show(ComboBox1.GetItemText(ComboBox1.SelectedItem))
  End Sub

  ComboBox1の現在選択されている項目が変更されると、GetItemTextメソッドで現在選択されている項目のテキストが返されます。

上記はComboBoxコントロールの使用に関するチュートリアルです、それがあなたの助けになることを願って、あなたが何か質問がある場合は、私にメッセージを残してください、私は時間内にあなたに答えるでしょう。これからもスクリプトハウスをよろしくお願いします。