Visual Basic 6.0 使用者可用的 ComboBox 控制項 Change 事件

更新:2007 年 11 月

在 Visual Basic 6.0 中,當您修改控制項中文字項目部分的文字時,會引發 ComboBox 控制項的 Change 事件,但是當您從控制項的清單部分選取某項目時,則不會引發。以程式設計方式變更清單中某項目的文字,並不會引發 Change 事件。

當專案移轉至 Visual Basic 2008 時,ComboBox 控制項的 Change 事件會對應至 Visual Basic 2008ComboBox 控制項的 TextChanged 事件。TextChanged 事件的行為與 Change 事件的行為有所差異,這樣的差異性可能造成程式碼中非預期的結果。

每次因任何原因變更文字時,都會引發 Visual Basic 2008TextChanged 事件,例如:

  • 修改文字項目部分時

  • 從清單選取項目時

  • 以程式設計方式修改清單項目時

  • 呼叫 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 事件程序中設定中斷點,並執行程式碼以判斷引發的位置。請視需要修改程式碼。

請參閱

概念

Visual Basic 6.0 使用者可用的 ComboBox 控制項