无法启用文本框,这会导致运行时错误
Cannot enable textbox, which leads to runtime error
我正在开发 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
时它抛出一个错误信息
Run-time error '5'
Invalid procedure call or argument
因为 txtNom
控件仍然被禁用。我不明白会是什么问题。
这是 VB6 IDE 的截图,在赋值 True 后立即观察 txtNom.Enabled
的值,你可以看到它仍然是假
好的,所以我在这里发现了问题。在此特定场景中,txtNom
控件位于同样被禁用的 panel
中。直到我在包含 panel
上专门将 Enabled 设置为 True 后,该控件才启用。因此,如果组件的任何容器被禁用,SetFocus
似乎会失败,这是有道理的,但错误消息信息是我认为微软不应该引以为豪的东西。
我正在开发 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
时它抛出一个错误信息
Run-time error '5'
Invalid procedure call or argument
因为 txtNom
控件仍然被禁用。我不明白会是什么问题。
这是 VB6 IDE 的截图,在赋值 True 后立即观察 txtNom.Enabled
的值,你可以看到它仍然是假
好的,所以我在这里发现了问题。在此特定场景中,txtNom
控件位于同样被禁用的 panel
中。直到我在包含 panel
上专门将 Enabled 设置为 True 后,该控件才启用。因此,如果组件的任何容器被禁用,SetFocus
似乎会失败,这是有道理的,但错误消息信息是我认为微软不应该引以为豪的东西。