在表单加载时最小化并隐藏Winform

Mik*_*ica 1 c# visibility winforms

我在C#程序中有一个Windows窗体,FormBorderStyle设置为FixedToolWindow.

窗口没有正常的控制框,但用户仍然可以从菜单中将其最小化.还有一个窗口以最小化状态启动的设置.

当用户单击最小化按钮时,它调用以下函数:

private void minimizeWindow()
{
    timer1.Enabled = false;            
    this.WindowState = FormWindowState.Minimized;
    this.Hide();
}
Run Code Online (Sandbox Code Playgroud)

窗口变成屏幕左下角的一个小框,然后消失(从this.hide通话中).当从Form_Load方法中调用相同的函数时(当设置开始最小化时),它最小化但不消失.

我的猜测是因为我在到达结尾之前隐藏了表单,Form_Load当它到达方法结束时再次显示.是否有任何方法可以确保表单在加载时隐藏(从系统托盘图标再次最大化)?

编辑:包含表单加载的所有代码

private void Form1_Load(object sender, EventArgs e)
{
    this.Left = windowXPos;
    this.Top = windowYPos;
    sysTrayIcon.MouseDoubleClick += new MouseEventHandler(sysTrayIcon_MouseDoubleClick);
    sysTrayIcon.BalloonTipText = "Timers Running";
    this.sysTrayIcon.Icon = this.Icon;
    sysTrayIcon.Visible = true;
    sysTrayIcon.ShowBalloonTip(500);
    Start();  //sets up timers
    if (startMinimized)
    {
        minimizeWindow();
    }
}
Run Code Online (Sandbox Code Playgroud)

Joc*_*cie 5

最好稍微更改一下逻辑,而不是显示表单,而是创建它的实例(var foo = new MyForm())但不要调用.Show()它,直到从系统托盘图标触发它才会显示.