C# 设置活动窗口
我正在尝试制作一个应用程序,提供一个地震风格的下拉式HUD控制台。我可以让它显示和隐藏窗口,但我不知道如何在显示后将其设置为活动窗口。我使用WinAPI调用来显示和隐藏窗口。我尝试过setforegroundindow(IntPtr-hWnd)和SetFocus(IntPtr-hWnd),但都没有用。有人有什么想法吗 试试这个(对我有用):C# 设置活动窗口,c#,winapi,C#,Winapi,我正在尝试制作一个应用程序,提供一个地震风格的下拉式HUD控制台。我可以让它显示和隐藏窗口,但我不知道如何在显示后将其设置为活动窗口。我使用WinAPI调用来显示和隐藏窗口。我尝试过setforegroundindow(IntPtr-hWnd)和SetFocus(IntPtr-hWnd),但都没有用。有人有什么想法吗 试试这个(对我有用): 有什么原因不能实现自己的控制台窗口吗?我的意思是一个简单的表单,将文本框设置为正确的样式。与尝试使用“cmd”过程相比,您可能更能控制它的工作方式 只是想
有什么原因不能实现自己的控制台窗口吗?我的意思是一个简单的表单,将文本框设置为正确的样式。与尝试使用“cmd”过程相比,您可能更能控制它的工作方式 只是想一想。您可以使用winAPI方法。希望这有帮助…我在这里找到了答案: winAPI方法对我来说无法正常工作,但确实如此:
form.TopMost = true;
form.TopMost = false;
我最初只是将TopMost设置为true,但在窗体后面显示对话框时遇到了问题。似乎将TopMost设置为true会将窗体拉到前面并保持在那里。将其设置为false不会将其向后推,但允许在前面显示其他表单。我在专注方面仍然存在问题,因此我最终选择了以下方法:
form.Activate();
如果切换到另一个应用程序并调用命令(我将showapp()方法设置为在tilde上触发),Setfocus()不会获取焦点。如果不在隐藏和显示之间更改焦点,即使在隐藏时,它也会保留在控制台上。
form.TopMost = true;
form.TopMost = false;
form.Activate();