如何让程序从任务栏 C# 到前面
how get program to front from taskbar c#
谁能告诉我如何将我的程序从任务栏调到最前面(我不知道这个名字好听)或者在 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;
More size codes here.
然后生成一个看起来像这样的 Activated 事件
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);
}
}
当您以任何方式激活表单时,表单会收到一条激活消息。当它收到消息时,此代码为 运行,强制将 window 设置为前台。希望这有帮助。
谁能告诉我如何将我的程序从任务栏调到最前面(我不知道这个名字好听)或者在 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;
More size codes here.
然后生成一个看起来像这样的 Activated 事件
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);
}
}
当您以任何方式激活表单时,表单会收到一条激活消息。当它收到消息时,此代码为 运行,强制将 window 设置为前台。希望这有帮助。