ComboBox コントロールの Change イベント (Visual Basic 6.0 ユーザー向け)

更新 : 2007 年 11 月

Visual Basic 6.0 では、コントロールのテキスト入力部分のテキストが変更されると、ComboBox コントロールの Change イベントが発生します。コントロールのリスト部分でアイテムが選択されたときには、このイベントは発生しません。また、アイテムのテキストをプログラムで変更した場合にも Change イベントは発生しません。

プロジェクトを Visual Basic 2008 に移行すると、ComboBox コントロールの Change イベントは Visual Basic 2008 の ComboBox コントロールの TextChanged イベントに対応付けられます。TextChanged イベントの動作は、Change イベントとは異なります。この相異によって、コードで意図した結果が得られない場合があります。

Visual Basic 2008 の TextChanged イベントは、なんらかの理由でテキストが変更されるたびに発生します。テキストが変更されるのは、次のようなときです。

  • テキスト入力部分が変更された。

  • 一覧でアイテムが選択された。

  • 一覧のアイテムがプログラムで変更された。

  • Add メソッドが呼び出された。

動作の違いを次の例に示します。

' Visual Basic 6.0
Private Sub Form_Load()
   ' Does not raise the Change event.
   Combo1.AddItem "A"
End Sub
Private Sub Form_Click()
   ' Does not raise the Change event.
   Combo1.List(0) = "B"
End If
' Visual Basic
Private Sub Form1_Load()
   ' Raises the TextChanged event.
   ComboBox1.Items.Add("A")
End Sub
Private Sub Form1_Click(ByVal sender As System.Object, ByVal _
e As System.EventArgs)
   ' Uses the SetItemString method from the VB6 compatibility library; 
   ' there is no equivalent method in Visual Basic.
   ' Raises the TextChanged event.
   Microsoft.VisualBasic.Compatibility.VB6. _
      SetItemString(ComboBox1, ComboBox1.Items.Count, "B")
End Sub

次の操作

  • TextChanged イベント プロシージャにブレークポイントを設定し、コードを実行してイベントが発生するかどうかを確認します。必要に応じてコードを変更します。

参照

概念

ComboBox コントロール (Visual Basic 6.0 ユーザー向け)