最小化到通知区域并且双击不会打开它

时间:2013-08-06 19:53:36

标签: c# winforms notifyicon

我正在尝试将我的应用程序最小化到通知区域,并且该部分正在运行。问题是,当我双击它时,它没有再次显示窗口。

这就是我正在做的事情,我希望这是一件简单的事我做错了:

public partial class Main : Form
{
    public Main()
    {
        InitializeComponent();
        CreateNotifyIcon();
    }

    private void CreateNotifyIcon()
    {
        mynotifyicon.BalloonTipIcon = ToolTipIcon.Info;
        mynotifyicon.BalloonTipText = "[Balloon Text when Minimized]";
        mynotifyicon.BalloonTipTitle = "[Balloon Title when Minimized]";
        mynotifyicon.Icon = Resources.lightning;
        mynotifyicon.Text = "[Message shown when hovering over tray icon]";
    }

    private void MainLoad(object sender, EventArgs e)
    {
        Resize += MainResize;
        MouseDoubleClick += MainMouseDoubleClick;
    }

    private void MainResize(object sender, EventArgs e)
    {
        try
        {
            if (FormWindowState.Minimized == WindowState)
            {
                mynotifyicon.Visible = true;
                mynotifyicon.ShowBalloonTip(3000);
                ShowInTaskbar = false;
                Hide();
            }

            else if (FormWindowState.Normal == WindowState)
            {
                mynotifyicon.Visible = false;
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Error: " + ex.Message);
        }
    }

private void MainMouseDoubleClick(object sender, MouseEventArgs e)
{
  try
  {
    Show();
    WindowState = FormWindowState.Normal;
    ShowInTaskbar = true;
    mynotifyicon.Visible = false;
  }
  catch (Exception ex)
  {
    MessageBox.Show("Error: " + ex.Message);
  }
}

}

我忘记提及的是我在MainMouseDoubleClick上设置了一个调试停止,并且从未达到过这一点。

感谢您的帮助!

**编辑**

我更改了双击以获得try / catch并且根本没有达到它。甚至没有尝试。

2 个答案:

答案 0 :(得分:3)

您需要将click事件添加到notifyicon。目前,您正在表单上注册处理程序。

mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;

答案 1 :(得分:1)

MouseDoubleClick

的末尾附加CreateNotifyIcon个事件
mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;

我建议将事件处理程序MainMouseDoubleClick重命名为更合适的名称,并从表单的双击事件中取消注册。