首页 > 解决方案 > 无法启用文本框,导致运行时错误

问题描述

我正在开发一个VB6 旧版应用程序(是的,非常、非常、非常旧的应用程序,迁移不是一种选择)。我有一个button和一个textbox (VB.TextBox)。文本框最初被禁用(例如Enabled = False)。当我单击 时buttontextbox应该启用并获得焦点。这是 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 的屏幕截图,txtNom.Enabled在分配True后立即查看值,您可以看到它仍然是False

VB6 的屏幕截图

标签: vb6runtime-error

解决方案


好的,所以我在这里发现了问题。在这种特殊情况下,txtNom控件位于panel也被禁用的 a 中。直到包含的. 因此,如果组件的任何容器被禁用,似乎会失败,这是有道理的,但错误消息信息是我认为微软不应该太自豪的东西。panelSetFocus


推荐阅读