2010-08-01 54 views
1

我正在编写一个应用程序,它创建了一个潜在的大量表单来在桌面上显示小部件。尽管ShowInTaskbar = false,该表单的每个实例都显示在任务管理器的“应用程序”列表中。实际上它们不显示在任务栏中。C#:从任务管理器隐藏多个表单

我想要的行为是只有应用程序的主窗体出现在任务管理器中,我该如何实现这一点?

回答

2

请注意,窗口也显示在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; 
     } 
    } 
} 
0

您可以尝试将FormBorderStyle设置为其中一个工具窗口选项 - FixedToolWindowSizaableToolWindow。我认为工具窗口不会显示在任务管理器的应用程序列表中,但我对此并不积极。

+0

这是整洁,它的工作原理。不过,作为窗口小部件,它们需要FormBorderStyle None,它显示出来。 – Bicubic 2010-08-01 11:58:42

+0

编辑:下面的海报在我试图找出代码块发布相同的答案时回答。 – Bicubic 2010-08-01 12:17:40