无法启用文本框,这会导致运行时错误

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 似乎会失败,这是有道理的,但错误消息信息是我认为微软不应该引以为豪的东西。