小编典典

最小化应用到系统托盘

c#

我有一个由C#和Visual Studio 2010驱动的Windows窗体应用程序。

如何将我的应用程序最小化到系统托盘(而不是任务栏),然后双击系统托盘将其放回原处?任何的想法?另外,如何在系统任务栏中的图标中创建一些菜单,当我右键单击它时,它会显示诸如“登录”,“断开连接”,“连接”之类的菜单。另外,有什么方法可以显示像从系统托盘中弹出的气球一样?

PS:我已经添加了notifyIcon,但是我不知道如何使用它。


阅读 286

收藏
2020-05-19

共1个答案

小编典典

处理窗体的Resize事件。在此处理程序中,您将覆盖Resize事件的基本功能,以使窗体最小化到系统托盘而不是任务栏。这可以通过在窗体的Resize事件处理程序中执行以下操作来完成:检查窗体的WindowState属性是否设置为FormWindowState.Minimized。如果是,请隐藏您的表单,启用NotifyIcon对象,并显示显示一些信息的提示框。一旦WindowState变为FormWindowState.Normal,通过将其Visible属性设置为false来禁用NotifyIcon对象。现在,您希望在任务栏上双击NotifyIcon对象时重新显示该窗口。为此,请处理NotifyIcon的MouseDoubleClick事件。在这里,您可以使用Show()方法显示表单。

private void frmMain_Resize(object sender, EventArgs e)
{
    if (FormWindowState.Minimized == this.WindowState)
    {
       mynotifyicon.Visible = true;
       mynotifyicon.ShowBalloonTip(500);
       this.Hide();
    }

    else if (FormWindowState.Normal == this.WindowState)
    {
       mynotifyicon.Visible = false;
    }
}
2020-05-19