从一开始就隐藏我的窗户?

时间:2011-08-05 10:09:29

标签: c# winforms

我有一个表格(表格1,主表格),我希望在一开始就隐藏。

我想这样做,因为我有一个notifyIcon,通过点击,为表单设置可见的true或false,但是我无法在一开始就设置表单的可见性。

由于

2 个答案:

答案 0 :(得分:5)

您不必在启动时显示表单。您可以简单地使用不带Form实例的Application.Run()重载。这将启动Windows应用程序消息泵而不显示任何UI。

在执行Application.Run()之前,您可以设置要显示的NotifyIcon。实际上,这意味着NotifyIcon将在启动后显示,当用户与图标交互时,您可以打开表单。

这是一个最小化的C#程序:在启动时显示NotifyIcon,并在用户单击时显示一个Form:

using System;
using System.Drawing;
using System.Windows.Forms;

class Program
{
    static void Main()
    {
        NotifyIcon icon = new NotifyIcon();
        icon.Icon = new Icon("C:\\Windows\\System32\\PerfCenterCpl.ico");
        icon.Visible = true;
        icon.Click += (s,e) => new Form().Show();
        icon.DoubleClick += (s,e) => Application.Exit();
        Application.Run();
    }
}

答案 1 :(得分:3)

我有一个应用程序正是这样做的。要解决此问题,请在Form的OnLoad中执行此操作,它不会立即显示或显示在任务栏中:

protected override void OnLoad(EventArgs e)
{
    Visible = false;
    ShowInTaskbar = false;
    base.OnLoad(e);
}