最小化到托盘

我的应用程序是用于聊天,我认为如果有人需要快速隐藏它,但不想关闭它,我想出了这个:

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事件处理程序中执行以下操作来完成:

  1. 检查表单的WindowState属性是否设置为FormWindowState.Minimized。 如果是,请隐藏表单,启用NotifyIcon对象,并显示显示某些信息的气球提示。
  2. 一旦WindowState变为FormWindowState.Normal,通过将其Visible属性设置为false来禁用NotifyIcon对象。
  3. 现在,您希望在双击任务栏中的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事件。

希望它有所帮助。