Поделиться через


Событие Change элемента управления ComboBox для пользователей Visual Basic 6.0

Обновлен: Ноябрь 2007

В Visual Basic 6.0 событие Change элемента управления ComboBox наступает при изменении текста в поле ввода текста элемента управления; событие не наступает при выборе элемента из списка элемента управления. Программное изменение текста элемента списка не вызывает событие Change.

При переносе проекта в Visual Basic 2008 событие Change элемента управления ComboBox сопоставляется с событием TextChanged элемента управления ComboBox в Visual Basic 2008. Поведение события TextChanged отличается от поведения события Change; это различие может привести к непредвиденным результатам при выполнении кода.

Событие TextChanged в Visual Basic 2008 наступает каждый раз при изменении текста, например по одной из следующих причин:

  • при изменении текста в поле ввода;

  • при выборе элемента из списка;

  • при изменении элемента списка программным способом;

  • при вызове метода 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