我正在编写一个应用程序,它创建了一个潜在的大量表单来在桌面上显示小部件。尽管ShowInTaskbar = false,该表单的每个实例都显示在任务管理器的“应用程序”列表中。实际上它们不显示在任务栏中。C#:从任务管理器隐藏多个表单
我想要的行为是只有应用程序的主窗体出现在任务管理器中,我该如何实现这一点?
我正在编写一个应用程序,它创建了一个潜在的大量表单来在桌面上显示小部件。尽管ShowInTaskbar = false,该表单的每个实例都显示在任务管理器的“应用程序”列表中。实际上它们不显示在任务栏中。C#:从任务管理器隐藏多个表单
我想要的行为是只有应用程序的主窗体出现在任务管理器中,我该如何实现这一点?
请注意,窗口也显示在Alt + Tab栏中。您需要通过重写CreateParams属性来更改窗口样式标志。这是一个完整的例子:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
this.FormBorderStyle = FormBorderStyle.None;
this.ShowInTaskbar = false;
}
protected override CreateParams CreateParams {
get {
var cp = base.CreateParams;
cp.ExStyle |= 0x80; // Turn on WS_EX_TOOLWINDOW
return cp;
}
}
}
您可以尝试将FormBorderStyle设置为其中一个工具窗口选项 - FixedToolWindow
或SizaableToolWindow
。我认为工具窗口不会显示在任务管理器的应用程序列表中,但我对此并不积极。
这是整洁,它的工作原理。不过,作为窗口小部件,它们需要FormBorderStyle None,它显示出来。 – Bicubic 2010-08-01 11:58:42
编辑:下面的海报在我试图找出代码块发布相同的答案时回答。 – Bicubic 2010-08-01 12:17:40