在表单加载时最小化和隐藏 Winform
Minimize and Hide Winform on Form Load
我在 C# 程序中有一个 Windows 表单,其中 FormBorderStyle
设置为 FixedToolWindow
。
window 没有正常的控制框,但用户仍然可以从菜单中将其最小化。还有一个 window 以最小化状态启动的设置。
当用户单击最小化按钮时,它会调用以下函数:
private void minimizeWindow()
{
timer1.Enabled = false;
this.WindowState = FormWindowState.Minimized;
this.Hide();
}
window 变成屏幕左下方的一个小方框,然后消失(来自 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();
}
}
最好稍微改变一下逻辑,而不是完全显示表单,而是创建它的一个实例 (var foo = new MyForm()
) 但不要调用 .Show()
,这样它永远不会显示,直到从您的系统托盘图标触发。
我在 C# 程序中有一个 Windows 表单,其中 FormBorderStyle
设置为 FixedToolWindow
。
window 没有正常的控制框,但用户仍然可以从菜单中将其最小化。还有一个 window 以最小化状态启动的设置。
当用户单击最小化按钮时,它会调用以下函数:
private void minimizeWindow()
{
timer1.Enabled = false;
this.WindowState = FormWindowState.Minimized;
this.Hide();
}
window 变成屏幕左下方的一个小方框,然后消失(来自 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();
}
}
最好稍微改变一下逻辑,而不是完全显示表单,而是创建它的一个实例 (var foo = new MyForm()
) 但不要调用 .Show()
,这样它永远不会显示,直到从您的系统托盘图标触发。