Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置活动窗口_C#_Winapi - Fatal编程技术网

C# 设置活动窗口

C# 设置活动窗口,c#,winapi,C#,Winapi,我正在尝试制作一个应用程序,提供一个地震风格的下拉式HUD控制台。我可以让它显示和隐藏窗口,但我不知道如何在显示后将其设置为活动窗口。我使用WinAPI调用来显示和隐藏窗口。我尝试过setforegroundindow(IntPtr-hWnd)和SetFocus(IntPtr-hWnd),但都没有用。有人有什么想法吗 试试这个(对我有用): 有什么原因不能实现自己的控制台窗口吗?我的意思是一个简单的表单,将文本框设置为正确的样式。与尝试使用“cmd”过程相比,您可能更能控制它的工作方式 只是想

我正在尝试制作一个应用程序,提供一个地震风格的下拉式HUD控制台。我可以让它显示和隐藏窗口,但我不知道如何在显示后将其设置为活动窗口。我使用WinAPI调用来显示和隐藏窗口。我尝试过setforegroundindow(IntPtr-hWnd)和SetFocus(IntPtr-hWnd),但都没有用。有人有什么想法吗

试试这个(对我有用):


有什么原因不能实现自己的控制台窗口吗?我的意思是一个简单的表单,将文本框设置为正确的样式。与尝试使用“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();