Значение TextBox.text пусто, даже если что-то было введено
Я пытаюсь отладить окно формы, написанное на VB6. Это для ввода данных клиента, чтобы вы могли ввести адрес в поле адреса. Вы также можете ввести что-то вроде 90210 Main Street, и при вводе он автоматически проанализирует текст и напишет 90210 в поле почтового индекса ниже и позволит Main Street находиться в поле адреса. Тем не менее, он может иногда неправильно анализировать, что я и пытаюсь исправить.
Проблема в том, что я не могу понять, как именно он настроен. Если я наберу что-то в поле адреса TextBox и сделаю
?ADDRESS.text
В ближайшем окне он возвращает пустую строку. Существует также только одна функция, определенная, когда я просматриваю выпадающий список под формой. Но когда я устанавливаю точку останова на это и щелкаю текстовое поле, тогда это не ломается. Это событие GotFocus():
Private Sub ADDRESS_GotFocus()
Call GCui.BM(ADDRESS)
End Sub
То же самое с текстовым полем POSTALCODE. В нем определены функции событий DblClick, GotFocus и LostFocus. Но установка точки останова в любом из них не имеет никакого эффекта.
Есть ли способ узнать, где в форме хранится значение Main Street или 90210? Они четко видны в текстовом поле АДРЕС и в текстовом поле POSTALCODE, но при запросе их значений непосредственное окно возвращает пустую строку.
Обновление 1:
Кажется, что кто-то решил полностью перестроить форму с новыми элементами управления. Это, вероятно, происходит в form.load. Но мне все равно хотелось бы узнать, есть ли способ поиска по значениям переменных, чтобы найти строку "Главная улица" или "90210".
Обновление 2:
Оказывается, что есть два кадра друг на друга. Верхний фрейм скрывается при запуске, а нижний (почти идентичный фрейм с одинаковыми метками и элементами управления) отображается.
1 ответ
Вы можете использовать функцию "Смотреть". Это позволит вам проверить все свойства формы и все элементы управления внутри формы и их значения (посмотрите на узел элементов управления).
Вы также можете сделать это с помощью кода, перебирая коллекцию form.controls.
Dim o As Object
For Each o In Me.Controls
If TypeOf o Is TextBox Then
Debug.Print o.Text
End If
Next