protected bool ChangeValue(int value, ValueChangeReason reason) { // 对设置值进行有效性检查 if (value > this.MaxValue) { value = this.MaxValue; } if (value < this.MinValue) { value = this.MinValue; } // 数值没有变化? int oldValue = this.Value; if (value == oldValue) { // 只需要更新数据显示就可以了 if (reason != ValueChangeReason.Keyboard) { SetShownText(ValueToString(value)); } return(true); } // 发出通知,查看是否可以修改? if (OnValueChanging != null) { ValueChangingArgs e = new ValueChangingArgs(reason, oldValue, value); OnValueChanging.Invoke(this, e); if (e.rejectChange) { return(false); } // 可以通过 Changing 事件设置值 value = e.newValue; } // 真正修改数据 if (reason == ValueChangeReason.Keyboard && (!internalChange) && StringToValue(this.txtNumeric.Text, out oldValue) && oldValue == value) { internalChange = true; this.Value = value; internalChange = false; } else { this.Value = value; } return(true); }
public ValueChangedArgs(ValueChangeReason reason, int oldValue, int newValue) { this.Reason = reason; this.oldValue = oldValue; this.newValue = newValue; }
public ValueChangingArgs(ValueChangeReason reason, int oldValue, int newValue) : base(reason, oldValue, newValue) { }