点窗体上的关闭后,弹出一个对话框选择是最小不是退出程序,如果选择最小后,怎么才能让程序放在右下角的托盘里呀,如果选择退出的话,将退出程序我已经添加了一个托盘了

解决方案 »

  1. 可以使用WndProc来做
       private const Int32 WM_SYSCOMMAND = 0x0112;
            private const Int32 SC_MAXMIZE = 61488;
            private const Int32 SC_MINMIZE = 61472;
            private const Int32 SC_Close = 61536;        protected override void WndProc(ref Message m)
            {
                if (m.Msg == WM_SYSCOMMAND)
                {
                    switch (m.WParam.ToInt32())
                    {
                        case SC_MAXMIZE:
                            MessageBox.Show("Max");
                            break;
                        case SC_MINMIZE:
                            MessageBox.Show("Min");
                            break;
                        case SC_Close:
                            MessageBox.Show("Close");
                            return;
                            break;
                    }               
                }
                base.WndProc(ref m);
            }        
      

  2.  private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (e.CloseReason == CloseReason.UserClosing)
                {
                    if (MessageBox.Show("aaaa", "bbbb", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) == DialogResult.Yes)
                        e.Cancel = false;
                    else
                    {
                        e.Cancel = true;
                        this.WindowState = FormWindowState.Minimized;
                    }
                }
            }
      

  3. 添加notifyIcon控件。private void Form1_Resize(object sender, EventArgs e)
    {
    if (WindowState == FormWindowState.Minimized)
    ShowInTaskbar = false;
    }放到托盘里。任务栏不显示。
      

类似问题 »