我在Visual Studio 2019 (VB)中有一个项目,其中包含一个MDI父窗体和几个MDI子窗体。子窗体都是在设计时创建的,而不是“在运行中”,它们都与父窗体交互,反之亦然,除了以下情况外,没有任何问题。
我在非MDI应用程序中没有的一个问题是,当加载MDI子窗体时,我无法将焦点设置到子窗体上的文本框上。事实上,整个表单都被停用了,我通过检查加载期间的停用事件证明了这一点。我甚至在停用事件中添加了以下代码(它已经在load事件中),并在load期间调用该事件:
Me.TopMost = True
Me.Dock = DockStyle.Fill
Me.Show()
Me.Activate()
Me.Focus()
txtName.Focus()加载完成后,该子窗体仍显示为未聚焦。当我单击子窗体时,它获得焦点,并在txtName文本框中显示光标闪烁,因此,不知何故,子窗体一加载就被停用了。我检查了停用事件中的Sender as Object值,它显示为子窗体本身!我找不到任何关于这个问题的帖子,我也没有想法了。
你能帮帮忙吗。
发布于 2021-01-05 11:07:16
这里有一个可能的解决方案:
您可以在form2(我的MDI子窗体)中引用以下代码:
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.BeginInvoke(Sub()
TextBox1.Focus()
End Sub)
End Sub我的测试结果:

https://stackoverflow.com/questions/65568746
复制相似问题