gpt4 book ai didi

c# - 在当前打开的应用程序的顶部显示隐藏的窗体

转载 作者:太空宇宙 更新时间:2023-11-03 11:17:10 25 4
gpt4 key购买 nike

我想将窗口窗体显示为弹出窗口,出现在所有打开的其他应用程序窗口的顶部我使用了 Focus 方法,但它没有用。所以我试过了:

using System.Diagnostics;
using System.Runtime.InteropServices;

// Sets the window to be foreground
[DllImport("User32")]
private static extern int SetForegroundWindow(IntPtr hwnd);

// Activate or minimize a window
[DllImportAttribute("User32.DLL")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
private const int SW_SHOW = 5;
private const int SW_MINIMIZE = 6;
private const int SW_RESTORE = 9;

private void ActivateApplication(string briefAppName)
{
Process[] procList = Process.GetProcessesByName(briefAppName);

if (procList.Length > 0)
{
ShowWindow(procList[0].MainWindowHandle, SW_RESTORE);
SetForegroundWindow(procList[0].MainWindowHandle);
}
}

如前一个关于 SO Here 的问题所述但我无法使用它。正确答案海报说“基本上,调用 ShowWindow() 然后调用 SetForegroundWindow()。”但我不知道这些方法的参数是什么

我究竟应该将什么传递给 ShowWindow(); 和 SetForegroundWindow();方法??有帮助吗?

最佳答案

这是我的解决方案:

private void ActivateApplication (string briefAppName) 
{
Process[] p=Process.GetProcessesByName (briefAppName);
if (p.Length>0)
{
this.TopMost=true;
ShowWindow (p[0].MainWindowHandle, 9);
this.TopMost=false;
this.Activate ();
}
}

使用 .Activate () 来聚焦表单,使用 TopMost 来改变表单的 Always-on-top 状态。

9 表示 Resotre 窗口。如果您的窗口已经恢复,则 ShowWindow 函数将不执行任何操作。在此处查找 ShowWindow 函数的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms633548%28v=vs.85%29.aspx

关于c# - 在当前打开的应用程序的顶部显示隐藏的窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12340837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com