最小化窗体 重写Form的Closing事件, 让它最小化关闭时也是一样 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Closing事件为public event CancelEventHandler Closing;并非virtual方法,不能够重写。 重写Form中的WinProc截取WM_CLOSE消息,把它改为最小化消息。我VS坏了,正在装。装好再把原代码贴出来 这样:在Closing事件中:private void frmBase_Closing(object sender, System.ComponentModel.CancelEventArgs e)e.Cancel = true;//取消窗口关闭://做你想做的事} snof(雪狼)说的对,具体如下:private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel=true; this.WindowState=FormWindowState.Minimized ; }不过这样,不论在那调用this.Close()都是最小化了,解决方法为,设一个布尔变量enable_close,当要退出时设enable_close=true;就可以退出了.完整代码如下:private bool enable_close=false;private void btnClose_Click(object sender, System.EventArgs e){ enable_close=true; this.Close();}private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e){ if(!enable_close) { e.Cancel=true; this.WindowState=FormWindowState.Minimized ; }} private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) { this.WindowState=FormWindowState.Minimized; e.Cancel=true; } 我查了一下,的确可以用重写WndProc方法: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.WindowState = FormWindowState.Minimized; return; } base.WndProc(ref m); } winform窗口重绘问题 (XML)序列化和反序列化的一个问题 C#登陆问题? 如何在IIS里配置日文网站,网站乱码问题 关于类内触发事件,处理数据,然后传递给类实例者的问题 熟悉Developer Express.XtraGrid 的朋友帮帮忙啊 如何设置每个datacolumn的宽度(不同column有不同的设置)????? wpf如何搜索到sqlserver服务器及获取已知数据库所有表名 关于DotNet组件问题 如何使子线程一直运行,直到主线程结束? 请教关于windows form的关闭问题。 网络编程socket的小问题,online
public event CancelEventHandler Closing;
并非virtual方法,不能够重写。
在Closing事件中:
private void frmBase_Closing(object sender, System.ComponentModel.CancelEventArgs e)
e.Cancel = true;//取消窗口关闭:
//做你想做的事
}
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel=true;
this.WindowState=FormWindowState.Minimized ;
}
不过这样,不论在那调用this.Close()都是最小化了,解决方法为,设一个布尔变量enable_close,当要退出时设enable_close=true;就可以退出了.完整代码如下:private bool enable_close=false;private void btnClose_Click(object sender, System.EventArgs e)
{
enable_close=true;
this.Close();
}private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
if(!enable_close)
{
e.Cancel=true;
this.WindowState=FormWindowState.Minimized ;
}
}
{
this.WindowState=FormWindowState.Minimized;
e.Cancel=true;
}
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_CLOSE = 0xF060;
if (m.Msg == WM_SYSCOMMAND && (int) m.WParam == SC_CLOSE)
{
this.WindowState = FormWindowState.Minimized;
return;
}
base.WndProc(ref m);
}