在我的应用程序中,当我显示一个消息框并且用户单击它的任何按钮(如 OK 或 CANCEL)时,我的窗口失去焦点并被最小化。
我曾尝试使用 set focus 也使用 win32 API SetForegroundWindow(window hWnd) 来保持窗口处于活动状态。我注意到如果我的窗口后面有另一个应用程序打开,我的应用程序窗口在单击消息框按钮后失去焦点,但如果它是桌面上唯一的可见窗口,它可以正常工作。我在 Windows 7 上工作,但我在 Win XP 中也面临同样的问题。
我正在使用 GradientForm。为了显示消息框,我使用 MessageBox.Show("Message Text", "", MessageBoxButtons.OK,MessageBoxIcon)。没什么不同。
当消息框关闭时没有启用任何窗口时,就会发生这种情况。Windows 被迫寻找另一个窗口来获得焦点,并将从另一个应用程序中选择一个。还解释了为什么当没有其他窗口时这不是问题。
确保你没有禁用你的窗户。换句话说,避免这种情况:
   this.Enabled = false;
   MessageBox.Show("oops");
   this.Enabled = true;
像这样将 Enabled 设置回 true 为时已晚。
| 归档时间: | 
 | 
| 查看次数: | 3235 次 | 
| 最近记录: |