Winform中如何判断Form页面中控件值被更改

Form关闭时候,需要判断Form中控件的值是否有更改,如果有则关闭之前提示是否保存。

stooranna -
共有1个回答
  • ZikoNap - 1年前

    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;
            }
        }
    }