最小化到托盘
本文关键字:最小化 | 更新日期: 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;
}
为什么不工作?
处理窗体的大小调整事件。在此处理程序中,您将重写调整大小事件的基本功能,使窗体最小化到系统托盘而不是任务栏。这可以通过执行
- 检查窗体的WindowState属性是否设置为formwindowstate . minimize。如果是,隐藏表单,启用NotifyIcon对象,并显示显示一些信息的气球提示。
- 一旦WindowState变成FormWindowState。正常情况下,通过将NotifyIcon对象的Visible属性设置为false来禁用它。
- 现在,您希望当您双击任务栏中的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
事件。