Запуск программы через иконку

    static void Main(string[] args)
        {
            Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory; 
            AutoRun(); 
            Application.Run(new Worker());
        }
        static void AutoRun()
        {
            RegistryKey myKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\",true);
            myKey.SetValue("StudyIcon", Application.ExecutablePath);
        }
    }
    class Worker : ApplicationContext
    {
        private static NotifyIcon icon;
        public Worker()
        {
            icon = new NotifyIcon(); 
            icon.Icon = new Icon("icon.ico"); 
            icon.Text = "Test";
            icon.Visible = true; 
            icon.Click += OnClickIcon; 
            icon.MouseMove += OnEnterIcon;
            this.ThreadExit += OnExit; 
        }
        private void OnClickIcon(object sender, EventArgs e)
        {
            this.ExitThread(); // когда кликаете на иконку, то программа выключается.
        }
        private void OnExit(object sender, EventArgs e)
        {
            icon.Dispose();// выключаем иконку, чтобы не осталась на панели задач
        }
}

Как сделать, что бы запихнуть запуск программы в private void OnClickIcon


Ответы (1 шт):

Автор решения: Igor Ilyichyov
private void Form_Resize(object sender, EventArgs e)
{
     notifyIcon1.BalloonTipTitle = "Minimize to Tray App";
     notifyIcon1.BalloonTipText = "You have successfully minimized your form.";

     if (FormWindowState.Minimized == this.WindowState)
     {
          notifyIcon1.Visible = true;
          notifyIcon1.ShowBalloonTip(500);
          this.Hide();    
     }
     else if (FormWindowState.Normal == this.WindowState)
     {
          notifyIcon1.Visible = false;
     }
}

private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
{
     this.Show();
     this.WindowState = FormWindowState.Normal;
}
→ Ссылка