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