C# 如何将程序从任务栏c转到前端#
有人能告诉我如何把我的程序从任务栏带到前台(我不知道这是个好名字)或者这个事件在c#的winform/wpf中叫什么名字吗。问题是有时(并非所有时候)当我最小化我的程序并再次单击时,可以显示它,但有时仍在另一个程序下,我希望在单击我的程序图标时生成代码,然后始终显示在前面C# 如何将程序从任务栏c转到前端#,c#,wpf,winforms,bringtofront,C#,Wpf,Winforms,Bringtofront,有人能告诉我如何把我的程序从任务栏带到前台(我不知道这是个好名字)或者这个事件在c#的winform/wpf中叫什么名字吗。问题是有时(并非所有时候)当我最小化我的程序并再次单击时,可以显示它,但有时仍在另一个程序下,我希望在单击我的程序图标时生成代码,然后始终显示在前面 尝试使用SetForegroundWindow()和ShowWindow()方法 对他们来说,重要的是 [DllImport("User32.dll")] internal static extern IntPtr SetFo
尝试使用
SetForegroundWindow()
和ShowWindow()
方法
对他们来说,重要的是
[DllImport("User32.dll")]
internal static extern IntPtr SetForegroundWindow(IntPtr hWnd);
[DllImport("user32.dll")]
internal static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
声明一个名为ActiveResize的常量(或任何您想要的名称。如下所示。internal const int ActiveResize=3;
然后生成一个激活的事件,看起来像这样
private void YOURPROGRAM_Activated(object sender, EventArgs e)
{
Process currentProcess = Process.GetCurrentProcess();
IntPtr hWnd = currentProcess.MainWindowHandle;
if (hWnd != User32.InvalidHandleValue)
{
User32.SetForegroundWindow(hWnd);
User32.ShowWindow(hWnd, ActiveResize);
}
}
当您以任何方式激活表单时,表单都会收到一条激活的消息。当表单收到消息时,将运行此代码,强制将窗口设置为前台。希望这能有所帮助。可能的重复