c#.net 的窗体关闭事件
来源:互联网 发布:csp绘画软件下载 编辑:程序博客网 时间:2024/05/21 09:26
在我们平时用的程序中,有很多已经把窗体右上方的关闭按钮的默认关闭改变了,当然,这其中有很多都是自己绘制,然后再写进去代码,但如果想留用Windows的自带的那个按钮也实现这个效果其实也是很简单的。
首先增加一个窗体关闭事件
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(login_FormClosing);
然后添加他的委托函数 login_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
e 中有两个属性是可以用到的,一个是CloseReason,这个属性值表示窗体关闭的原因,另一个是Cancel,这个属性表示是否取消关闭窗体,为true时取消,为false时不取消。
现在要实现的是单击窗体关闭按钮时窗体并不关闭,而是最小化,然后不在任务栏中显示,当单击我们给定的关闭按钮时才关闭。
我用了一个“全局变量”来判断单击的是否是我们设置的关闭按钮: private bool close = false; 当close 为true时,关闭窗体。
void login_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e)
{
MessageBox.Show(e.CloseReason.ToString());//显示关闭原因
if (close)
{
e.Cancel =false;//close为true,关闭窗体
}
else
{
e.Cancel =true;//取消关闭
this.WindowState= FormWindowState.Minimized;//最小化窗体
this.ShowInTaskbar=false;//不在任务栏显示
}
}
自定义关闭按钮的单击事件:
2 {
3 this.close= true;
4 this.Close();
5 }
这样几行代码就实现了如迅雷,有道,卡巴斯基等软件的类似的简单功能,其实主要目的是为了防止用户误关闭应用程序。
PS: 下面是demo的代码
在方法Form1_FormClosing中添加如下代码:
if (MessageBox.Show("是否关闭?", "提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == System.Windows.Forms.DialogResult.OK)
{
e.Cancel = false; //---取消关闭 窗体
}
else
{
e.Cancel = true; //----关闭窗体
}
- c#.net 的窗体关闭事件
- C#.NET常见问题(FAQ)-如何捕捉窗体关闭的事件,弹窗确认是否退出
- vb.net窗体关闭按钮触发事件
- paip.c#.net 设置窗体关闭提醒
- .NET WinForms中点击窗体右上角的关闭按钮后的事件处理
- [VB.NET]点击窗体上面的关闭按钮时,激发的是哪个事件?
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- asp.net窗体的打开和关闭
- 关闭窗体事件-onbeforeunload事件
- 关闭窗体事件-onbeforeunload事件
- Java程序员应该了解的10个面向对象设计原则
- centos6下yum安装中文输入法
- 25---AWT和Swing(10)下拉列表(视频代码)
- NFC--近距离无线通讯技术(1)
- Ant中java任务使用命令行传参数
- c#.net 的窗体关闭事件
- JAR命令使用
- socket编程之完成端口(附一个简单的IOCP例子)
- 网友五花八门过“闰秒”
- IE9 重回到IE8 的方法
- 程序员技术练级攻略(转)
- C语言:size_t说明
- 25---AWT和Swing(11)菜单组件(视频代码)
- 对于jetty eclipse 老是调用不到最新的代码 和修改 端口配置