在窗体中有多个控件,请问怎样实现 1个或多个控件值修改后,提示自动保存功能?
谢谢

解决方案 »

  1.   

            private void label1_TextChanged(object sender, EventArgs e)
            {
                if (MessageBox.Show("确认修改?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    //执行修改
                }
            }
      

  2.   

    如果控件数量太多,那我岂不是写N多个change 事件?
    这种做法肯定不行
      

  3.   

    提示楼主,多个控件的 change 事件可以绑定到同一个方法上,所以,不需要你写很多的 change 事件,其实这个问题的难点并不在控件的数量上,而是控件的种类上,不同种类的控件中统计 change 事件确实有点麻烦,不过可以通过重写控件的方式,节省一些工作量,例如 将 ATextBox 继承 textbox,ARadioButton 继承 radiobutton,这些 Axxx 的控件都提供一个统一的事件 OnAControlChanged,然后在UI端,处理所有控件的这个方法就可以了(使用同一个函数,千万不要写好多好多函数来处理这个问题)
      

  4.   

    请参考5楼,如果你嫌烦就参考6楼
    在closing事件里写
      

  5.   


    谢谢几位的回复。
    退出时保存肯定是不行的,因为我是想实现WORD的那种功能,只要文本有变化就会出现需要保存的标记。
      

  6.   

    那你就用chenged事件吧,不过没必要像我上边写的那样弹出提示,要不总弹东西太烦
      

  7.   


    赞同phoenix8343_cn 的说法,其实当时有考虑过这种做法,但是如果只有简单的文本框,下拉框还好点,如果包含的控件类型很多,这样做还是会增加不少的工作量。
      

  8.   

    楼主看看这样行不行。
    将控件中需要记录更改的部分用数据绑定。假定绑定的是类中的属性,在类属性的setter触发时记录更改发生。