Значение 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
Другие вопросы по тегам