最小化到托盘

Con*_*nor 6 c#

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

private void button6_Click(object sender, EventArgs e)
{
    this.WindowState = FormWindowState.Minimized; 
}
Run Code Online (Sandbox Code Playgroud)

然而,我没有去任务栏,而是希望它在托盘中出现(没有弹出窗口),只是应用程序图标,当有人点击它时,它需要设置这个

this.WindowState = FormWindowState.Normal; 
Run Code Online (Sandbox Code Playgroud)

这可能吗,怎么样?

系统托盘也是指右下角的那个,紧挨着时间

我仍然无法让这个工作,如果我按你们所说的那样在通知栏中没有出现(顺便说一下:这是最小化的完整代码)

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;
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

Nir*_*ngh 8

处理表单的Resize事件.在此处理程序中,您将覆盖Resize事件的基本功能,以使表单最小化到系统托盘而不是任务栏.这可以通过在表单的Resize事件处理程序中执行以下操作来完成:

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

在表单resize事件中,执行检查并隐藏表单

 private void Form_Resize(object sender, EventArgs e)
    {
        if (WindowState == FormWindowState.Minimized)
        {
            this.Hide();
        }
    }
Run Code Online (Sandbox Code Playgroud)

然后单击任务栏图标时,只需将其恢复.

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

请参阅:
如何将WinForms应用程序最小化到通知区域?
最小化app到系统托盘


Fre*_*cer 5

使用以下代码:

if (WindowState == FormWindowState.Minimized)
        {
            this.Hide();
        }
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

希望它有所帮助.