Событие 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