为什么ShowInTaskbar会冻结应用程序?

时间:2014-02-06 05:41:37

标签: c# .net winforms

我需要在启动操作系统时隐藏Form(Windows 7) 为此,我尝试了解决方案: -

if (Program.Args == "/startup")
{
    this.Hide();
    this.ShowInTaskbar = false;
}

我在form1_Load事件中有上面的代码,Program.Args是提供给我程序的命令行参数。

上面的代码有什么问题?

如何通过命令行参数完成对表单的隐藏?

有些人建议使用
this.WindowState = FormWindowState.Minimized
this.ShowInTaskbar = false 我尝试了但我的应用程序冻结了,如下: -

enter image description here

如果我注释掉了这一行 this.ShowInTaskBar = false
它正常运行,但在任务栏中显示图标。

应用程序的正常外观是: -

enter image description here

3 个答案:

答案 0 :(得分:0)

尝试更改可见性等内容。我在你的代码上得到一个错误代码,因为Args转换为字符串......但是这很好用。

private void Form1_Load(object sender, EventArgs e)
{
    this.Visible = false;
    this.ShowInTaskbar = false;
}

答案 1 :(得分:0)

    private void Form1_Load(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Minimized;
        this.ShowInTaskbar = false;
    }

然后为托盘和显示托盘图标

创建一个图标

答案 2 :(得分:0)

在表单的属性中(在VS中)设置下一个属性:

  • ShowInTaskbar =假
  • 的WindowState =最小化

最好在VS的设计形式中执行此操作,而不是在load事件中。如果您的应用程序仍处于冻结状态,请删除除通知图标上的单击事件以外的所有其他代码以显示该窗口。我用一个干净的形式(只有一个按钮)模拟它,并没有冻结问题。以下是用户单击通知图标时必须执行的代码:WindowState = FormWindowState.Normal;