C# 如何将程序从任务栏c转到前端#

C# 如何将程序从任务栏c转到前端#,c#,wpf,winforms,bringtofront,C#,Wpf,Winforms,Bringtofront,有人能告诉我如何把我的程序从任务栏带到前台(我不知道这是个好名字)或者这个事件在c#的winform/wpf中叫什么名字吗。问题是有时(并非所有时候)当我最小化我的程序并再次单击时,可以显示它,但有时仍在另一个程序下,我希望在单击我的程序图标时生成代码,然后始终显示在前面 尝试使用SetForegroundWindow()和ShowWindow()方法 对他们来说,重要的是 [DllImport("User32.dll")] internal static extern IntPtr SetFo

有人能告诉我如何把我的程序从任务栏带到前台(我不知道这是个好名字)或者这个事件在c#的winform/wpf中叫什么名字吗。问题是有时(并非所有时候)当我最小化我的程序并再次单击时,可以显示它,但有时仍在另一个程序下,我希望在单击我的程序图标时生成代码,然后始终显示在前面


尝试使用
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);
    }
}
当您以任何方式激活表单时,表单都会收到一条激活的消息。当表单收到消息时,将运行此代码,强制将窗口设置为前台。希望这能有所帮助。

可能的重复