在发布时隐藏表单

sip*_*ppa 10 c# forms hide winforms

我有一个只需要NotifyIcon按预期工作的程序.所以我一直试图让程序启动时隐藏主窗体.

在frmMain_Load中,我尝试了两种方法

this.Hide();
this.Visible = false;
Run Code Online (Sandbox Code Playgroud)

没有成功.

它们可以在其他方法中工作,例如NotifyIcon_MouseClick方法,但我希望它隐藏在Load中.

我在这里看到另一个问题,在那里Matias建议:

BeginInvoke(new MethodInvoker(delegate
{
    Hide();
}));
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是当我启动程序时,我可以看到表单快速闪烁.它总比没有好,但我想知道是否有更好的解决方案.

谢谢.

VBN*_*ght 15

// In Your Program.cs Convert This
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

// To This
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Form1 TheForm = new Form1();
    Application.Run();
}

// Call Application.Exit() From Anywhere To Stop Application.Run() Message Pump and Exit Application
Run Code Online (Sandbox Code Playgroud)


Pie*_*aud 5

如果您的程序具有默认的Visual Studio生成的Program.cs文件,则有一种简单的方法:

[STAThread]
static void Main()
{
    Application.EnableVisualStyles ();
    Application.SetCompatibleTextRenderingDefault (false);
    Application.Run (new MainForm ());
}
Run Code Online (Sandbox Code Playgroud)

调用的简单事实Run将确实使表格可见.尝试在表单的属性中执行以下操作:

  1. 设置WindowStateMinimized
  2. 设置ShowInTaskbarfalse

这应该做的伎俩!