C#:从任务管理器隐藏多个表单

时间:2010-08-01 11:47:23

标签: c# winforms

我正在编写一个应用程序,它可以创建大量的表单来在桌面上显示小部件。尽管ShowInTaskbar = false,该表单的每个实例都显示在任务管理器的Applications列表中;实际上它们没有显示在任务栏中。

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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