最小化到托盘
我的应用程序是用于聊天,我认为如果有人需要快速隐藏它,但不想关闭它,我想出了这个:
private void button6_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; }
然而,我没有去任务栏,而是希望它在托盘中出现(没有弹出窗口),只是应用程序图标,当有人点击它时,它需要设置这个
this.WindowState = FormWindowState.Normal;
这可能吗,怎么样?
系统托盘也是指右下角的那个,紧挨着时间
我仍然无法让这个工作,如果我按你们所说的那样,通知栏中没有任何内容出现(顺便说一句:这是最小化的完整代码)
private void button6_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void Form_Resize(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { this.Hide(); } } private void notifyIcon_Click(object sender, EventArgs e) { this.Show(); this.WindowState = FormWindowState.Normal; }
为什么这不起作用?
处理表单的Resize事件。 在此处理程序中,您将覆盖Resize事件的基本function,以使表单最小化到系统托盘而不是任务栏。 这可以通过在表单的Resize事件处理程序中执行以下操作来完成:
- 检查表单的WindowState属性是否设置为FormWindowState.Minimized。 如果是,请隐藏表单,启用NotifyIcon对象,并显示显示某些信息的气球提示。
- 一旦WindowState变为FormWindowState.Normal,通过将其Visible属性设置为false来禁用NotifyIcon对象。
- 现在,您希望在双击任务栏中的NotifyIcon对象时再次出现该窗口。 为此,处理NotifyIcon的
MouseDoubleClick
事件。 在这里,您使用Show()
方法Show()
表单。
在表单resize事件中,检查那里并隐藏表单
private void Form_Resize(object sender, EventArgs e) { if (WindowState == FormWindowState.Minimized) { this.Hide(); } }
然后单击任务栏图标时,只需将其恢复。
private void notifyIcon_Click(object sender, EventArgs e) { this.Show(); this.WindowState = FormWindowState.Normal; }
参考:
如何将WinForms应用程序最小化到通知区域?
最小化app到系统托盘
使用以下代码:
if (WindowState == FormWindowState.Minimized) { this.Hide(); }
最小化表单时,只需隐藏它即可。 您必须在Form_Resize
事件中实现上面的代码。
然后在单击任务栏图标时,只需恢复其状态,如下所示:
private void notifyIcon_Click(object sender, EventArgs e) { this.Show(); this.WindowState = FormWindowState.Normal; }
为此,您需要使用notifyIcon_Click
事件。
希望它有所帮助。