我的应用程序是聊天,我想如果有人需要快速隐藏它,但不想关闭它,我想出了这个:
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)
为什么这不起作用?
处理表单的Resize事件.在此处理程序中,您将覆盖Resize事件的基本功能,以使表单最小化到系统托盘而不是任务栏.这可以通过在表单的Resize事件处理程序中执行以下操作来完成:
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到系统托盘
使用以下代码:
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为此目的使用事件.
希望它有所帮助.