最小化到托盘

时间:2013-04-22 06:22:53

标签: c#

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

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

为什么这不起作用?

2 个答案:

答案 0 :(得分:8)

  

处理表单的Resize事件。在此处理程序中,您重写   Resize事件的基本功能,使表单最小化   系统托盘而不是任务栏。这可以通过这样做来完成   在表单的Resize事件处理程序中跟随:

  1. 检查表单的WindowState属性是否设置为FormWindowState.Minimized。如果是,请隐藏表单,启用NotifyIcon对象,并显示显示某些信息的气球提示。
  2. 一旦WindowState成为FormWindowState.Normal,通过将其Visible属性设置为false来禁用NotifyIcon对象。
  3. 现在,您希望在双击任务栏中的NotifyIcon对象时再次出现该窗口。为此,请处理NotifyIcon的MouseDoubleClick事件。在这里,您使用Show()方法显示表单。
  4. 在表单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;
    }
    

    参见:
    How do I minimize a WinForms application to the notification area?
    minimize app to system tray

答案 1 :(得分:5)

使用以下代码:

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

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

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

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

为此,您需要使用notifyIcon_Click事件。

希望它有所帮助。