我正在尝试调试用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的值存储在哪里?它们在ADDRESS文本框和POSTALCODE文本框中清晰可见,但在询问其值时,立即窗口返回空行。
更新1:
似乎有人决定使用新控件完全重建表单。它可能发生在form.load中。但我仍然想知道是否有办法搜索变量值以找到字符串“Main Street”或“90210”。
更新2:
事实证明,彼此顶部有两个框架。顶部框架在启动时隐藏,底部(几乎相同的框架具有相同的标签和控件)显示。
答案 0 :(得分:2)
您可以使用“观看”功能。这将允许您检查表单的所有属性以及表单中的所有控件及其值(查看控件节点)。
您也可以通过循环遍历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