首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# & WinForm|请问下高手,Form关闭时最小化到托盘,右击关闭如何退出程序

2012-01-10 
C# & WinForm|请教下高手,Form关闭时最小化到托盘,右击关闭怎么退出程序?点击窗体上的“X”关闭使之最小化到

C# & WinForm|请教下高手,Form关闭时最小化到托盘,右击关闭怎么退出程序?
点击窗体上的“X”关闭使之最小化到托盘,然后右击弹出菜单,选择“关闭”如何完全关闭?

private   void     Form1_Closing(object   sender,   System.ComponentModel.CancelEventArgs   e)
                {                    

                        this.WindowState   =   FormWindowState.Minimized;
                        e.Cancel   =   true;                      
                       
                }

  private   void   Form1_SizeChanged(object   sender,   EventArgs   e)
                {
                        if   (this.WindowState   ==FormWindowState.Minimized   )
                        {
                                this.Hide();
                                this.notifyIcon1.Visible   =   true;
                        }
                }
========
这是我单击 "X "按钮时,代码
请教高手,如何退出程序

[解决办法]
你一定要在如下的方法里添加参数来标识是不是应该真的退出程序:
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if (!this.m_allowExit)
{
this.WindowState = FormWindowState.Minimized;
e.Cancel = true;
}
}

然后在弹出的菜单的Click事件里设置这个this.m_allowExit=true;
这样窗口就会顺利的关闭了.
[解决办法]
/// <summary>
/// 重写窗体关闭事件
/// </summary>
/// <param name= "m "> </param>
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
{
this.Hide();
return;
}
base.WndProc (ref m);
}
[解决办法]
点x和使用菜单关闭程序执行不同程序

你只要在菜单那多设一个变量加以区分就OK了

热点排行