我正在开发 VB6旧版应用程序 (是的,非常非常非常旧的应用程序,不能选择迁移)。我有一个button
和一个textbox (VB.TextBox)
。该文本框最初被禁用(例如Enabled = False)
。当我单击button
时,textbox
应该被启用并获得焦点。
这是OnClick事件的代码
Private Sub btnMAJ_Click(Index As Integer)
txtNom.Enabled = True
txtNom.SetFocus
End Sub
问题是,当我将txtNom.Enabled
的值更改为True后立即进行检查时,它仍然为False,并且当代码到达行txtNom.SetFocus
时,它会引发错误消息>
运行时错误“ 5”
无效的过程调用或参数
因为txtNom
控件仍然被禁用。我不明白会是什么问题。
这是VB6 IDE的屏幕截图,分配了 True 后立即观察了txtNom.Enabled
的值,您仍然可以看到它仍然为 False < / p>
答案 0 :(得分:4)
好,所以我在这里发现了问题。在这种特定情况下,txtNom
控件位于panel
内,该控件也被禁用。直到我在包含的panel
上将 Enabled 设置为 True 时,该控件才被启用。因此,如果禁用该组件的任何容器,似乎SetFocus
将会失败,这是有道理的,但是错误消息信息是我认为微软不应该为此感到骄傲的。