最小化到托盘

本文关键字:最小化 | 更新日期: 2023-09-27 18:10:12

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

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;
}

为什么不工作?

最小化到托盘

处理窗体的大小调整事件。在此处理程序中,您将重写调整大小事件的基本功能,使窗体最小化到系统托盘而不是任务栏。这可以通过执行

  1. 检查窗体的WindowState属性是否设置为formwindowstate . minimize。如果是,隐藏表单,启用NotifyIcon对象,并显示显示一些信息的气球提示。
  2. 一旦WindowState变成FormWindowState。正常情况下,通过将NotifyIcon对象的Visible属性设置为false来禁用它。
  3. 现在,您希望当您双击任务栏中的NotifyIcon对象时窗口重新出现。为此,处理NotifyIcon的MouseDoubleClick事件。在这里,您使用Show()方法显示表单。

在表单大小调整事件中,执行检查并隐藏表单

 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应用程序最小化到通知区域?
最小化应用程序到系统托盘

使用以下代码:

if (WindowState == FormWindowState.Minimized)
        {
            this.Hide();
        }

当您最小化表单时,只需隐藏它。您必须在Form_Resize事件中实现上述代码。

然后点击任务栏图标恢复其状态,如下所示:

private void notifyIcon_Click(object sender, EventArgs e)
    {
        this.Show();
        this.WindowState = FormWindowState.Normal;
    }

您将需要为此目的使用notifyIcon_Click事件。