Frage

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.

War es hilfreich?

Lösung

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

mynotifyicon.MouseDoubleClick += MainMouseDoubleClick;

Andere Tipps

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();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top