C#阻止窗体关闭的方法


有时候 我们往往需要在用户点击关闭窗体(或窗体的关闭事件产生)时,对一些变量进行判断,如果存在问题则使用弹出对话框的形式来警告和询问用户,让使用确定是否关闭。用以下几个方法可以实现:

1、窗体关闭事件的重截法

  1. //重截窗体的OnClosing方法   
  2.        protected override void OnClosing(CancelEventArgs e)  
  3.        {  
  4.            DialogResult result = MessageBox.Show("确定要退出吗?""信息", MessageBoxButtons.YesNo, MessageBoxIcon.Question);  
  5.            if (result == DialogResult.No)  
  6.            {  
  7.                e.Cancel = true//取消关闭操作   
  8.            }  
  9.        }  

2、使用窗体本事提供的FormClosing事件

  1. private void Form2_FormClosing(object sender, FormClosingEventArgs e)  
  2.        {  
  3.            DialogResult drClose = MessageBox.Show("您确认退出吗?""退出系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);  
  4.            if (drClose == DialogResult.Cancel)  
  5.                e.Cancel = true;  

相关内容