在Form关闭是,需要判断Form中控件的值是否有更改,如果有则关闭之前提示是否保存。
1. 设置一个布尔类型的字段 isChanged,保存是否有更改;
2. 如是控件是 TextBox,在其 TextChanged 事件处理函数中将 isChanged 设置为 true;
3. 处理 Form 的 FormClosing 事件,在其中弹出提示。
参考代码如下:
public partial class Form1 : Form
{
private bool isChanged = false;
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
isChanged = true;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (isChanged)
{
DialogResult r = MessageBox.Show("数据已修改,是否放弃?", "提示",
MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button2);
if (r == System.Windows.Forms.DialogResult.No)
e.Cancel = true;
}
}
}
用模式对话窗吧!(按钮事件)
1.判断值是否修改
2.如果没修改 this.close();
3.如果修改
DialogResult MsgBoxResult = MessageBox.Show("Do you want to confirm the recorder?", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
if (MsgBoxResult == DialogResult.Yes)//如果对话框的返回值是YES(按"Y"按钮)
{
//业务逻辑
this.close();
}