我正在尝试制作一个提供地震风格下拉式 HUD 控制台的应用程序。我可以让它显示和隐藏窗口,但我不知道如何在显示后将其设置为事件窗口。我正在使用 Win API 调用来显示和隐藏窗口。我试过 SetForegroundWindow(IntPtr hWnd) 和 SetFocus(IntPtr hWnd) 无济于事。有人有主意吗?
public void ShowApp()
{
IntPtr h = FindWindow(null, "C:\\Windows\\system32\\cmd.exe");
ShowWindow(h, SW_SHOW);
//EnableWindow(h, true);
isHidden = false;
// set focus to console window
SetForegroundWindow(h);
System.Diagnostics.Debug.WriteLine(h);
}
最佳答案
我在这里找到了答案: How to show form in front in C#
winAPI 方法对我来说工作不正常,但这确实有效:
form.TopMost = true;
form.TopMost = false;
我最初只是将 TopMost 设置为 true,但我遇到了对话框显示在表单后面的问题。似乎将 TopMost 设置为 true 会将表单拉到前面并将其保留在那里。将它设置为 false 不会将其推回但允许其他表单显示在前面。我仍然无法集中注意力,所以我最终采用了以下方法:
form.Activate();
关于c# - 设置事件窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6434475/