Question

I am trying to get my application to minimize to the notification area and that part is working. The problem is, when I double click it, it is not showing the window again.

This is what I'm doing, I hope it's something simple I'm doing wrong:

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);
  }
}

}

Something I forgot to mention was I put a debug stop on MainMouseDoubleClick and it's never hitting that point.

Thanks for the help!

** EDIT **

I changed the double click to have a try/catch and it's not being reached at all. Not even to the try.

Était-ce utile?

La solution

You need to add the click event to the notifyicon. At the moment you are registering the handler on the form.

mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;

Autres conseils

Attach the MouseDoubleClick event at the end of CreateNotifyIcon:

mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;

I would recommend renaming the event handler MainMouseDoubleClick to something more appropriate and unregistering it from the form's double click event.

I have used this and its working :

this.WindowState = FormWindowState.Normal;
this.Activate();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top