要使Windows窗体应用程序在系统托盘中运行,我需要做什么?
不是可以最小化托盘的应用程序,而是仅存在于托盘中的应用程序,只有图标,工具提示和"右键单击"菜单.
将WinForms应用程序最小化到系统托盘的正确方法是什么?
注意:最小化到系统托盘 ; 在时钟任务栏的右侧.我不是要求最小化到任务栏,这是当你点击窗口上的"减号"按钮时会发生的事情.
我已经看到了像"最小化,设置ShowInTaskbar = false,然后显示你的NotifyIcon"这样的hackish解决方案.
像这样的解决方案是hackish,因为应用程序似乎不像其他应用程序那样最小化托盘,代码必须检测何时设置ShowInTaskbar = true,以及其他问题.
这样做的正确方法是什么?
我想将C#WinForms应用程序最小化到系统托盘.我试过这个:
单击按钮时应用程序最小化到系统托盘?.我第一次最小化它,它在屏幕上找不到 - 任务栏/任务栏/托盘上方.
如果我点击alt标签,我可以看到我的应用程序; 如果我将选项卡添加到其中并再次将其最小化,它将显示在任务栏上方:

我究竟做错了什么?
我的应用程序是聊天,我想如果有人需要快速隐藏它,但不想关闭它,我想出了这个:
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)
为什么这不起作用?