【发布时间】:2013-07-07 06:42:58
【问题描述】:
我有一个在系统托盘中运行的应用程序,当用户按下按钮的战斗时,它会显示要填写的 WinForm 并发送电子邮件。一切都很好,但显示 WinForm 时的部分。它显示在顶部,焦点似乎在文本框上,但窗口未激活。
用于调用 Popup 表单的代码。
My.Forms.frmpopup.ShowDialog()
弹出表单上的代码
Private Sub frmPopup_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Activate()
BringToFront()
End Sub
Private Sub frmPopup_Load(sender As Object, e As EventArgs) Handles Me.Load
TextBoxName.Focus()
End Sub
真正的问题在于,只要用户当前没有将注意力集中在 Internet Explorer 窗口上,它就可以工作。如果我找到解决方案,我会发布它。
似乎将两个 Sub 合并为一个 sub 可以解决问题,我将继续测试。
Private Sub frmPopup_Shown(sender As Object, e As EventArgs) 句柄 显示的我 启用() 带到前面() TextBoxName.Focus() 结束子
【问题讨论】:
-
ShowDialog()show 将您的表单置于顶部并激活它,这是一个奇怪的问题。 -
你试过 Me.TopMost = True 吗?
-
是的,winform 会显示并且 I 符号会在文本框中闪烁,但活动的焦点和键盘输入将在弹出窗口下方的窗口上。
标签: c# vb.net winforms focus show