日期:2014-05-17  浏览次数:20897 次

怎样判断Winform窗体内的值是否变化
从列表右键单击编辑,跳转到编辑界面
点击提交时,怎样判断所有的控件内的值是否改变过,有没有一种简单的方法判断所有的

------解决方案--------------------
有一个简单的办法,把页面的所有值组合成一个字符串,页面load完的组合字符串串跟提交时的串进行比较,一样就没改页面,不一样就改动了。

combobox的值可以用selectindex也可以用selecttext,checkbox可以用true或false,radiobutton同理
------解决方案--------------------
无论如何都得要逐个对比吧, 楼上写字符串的方式其实也是逐个对比了
------解决方案--------------------
定义一个Bool类型的IsChanged,初始值为false,当form中有控件的值被改变时把IsChanged置为true
------解决方案--------------------
修改之前复制一份Mode数据;
属性改变会触发这个委托事件!
可以定义一个bool行的变量去处理!
  public class TestData : INotifyPropertyChanged
     {
         public void INotifyPropertyChanged(string propertyName)
         {
             if (PropertyChanged != null)
                 PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
         }
       private String ss;
 
        public String SS
        {
            get
            {
                return ss;
            }
            set
            {
                if (value != ss)
                {
                    Validator.ValidateProperty(value, new ValidationContext(this, null, null) { MemberName = "SS" });
                    ss = value;
              INotifyPropertyChanged("SS");
                }
            }