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了