3

我正在尝试让我的应用程序最小化到通知区域并且该部分正在工作。问题是,当我双击它时,它不再显示窗口。

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

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,但它从来没有达到这一点。

谢谢您的帮助!

** 编辑 **

我将双击更改为尝试/捕获,但根本没有达到。甚至不去尝试。

4

2 回答 2

4

您需要将点击事件添加到通知图标。目前,您正在表单上注册处理程序。

mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;
于 2013-08-06T20:01:28.283 回答
1

MouseDoubleClick在末尾附加事件CreateNotifyIcon

mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;

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

于 2013-08-06T20:01:29.953 回答