我用两个DateTimePicker做一个日期区间,
但我想要限定DateTimePicker1一定要小于DateTimePicker2,
所以我想用事件去触发,
当它有改变且离开控件时才去做比对,(让比对次数越少越好!!)
我想问一下我该用哪一个事件才是最好的?
我原本是用Leave,
可是我主管说不该用这个??
想请问各位先进,教教我该用什么和为什么?
但我想要限定DateTimePicker1一定要小于DateTimePicker2,
所以我想用事件去触发,
当它有改变且离开控件时才去做比对,(让比对次数越少越好!!)
我想问一下我该用哪一个事件才是最好的?
我原本是用Leave,
可是我主管说不该用这个??
想请问各位先进,教教我该用什么和为什么?
private void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
if (dateTimePicker2.Value < dateTimePicker1.Value)
{
MessageBox.Show("不符合规则");
}
}
因为我怎么试它们三个都会先后的触发…
可以跟我说什么时候只会触发Leave…
什么时候又是触发Validated跟Validating??
所以用ValueChanged好像比Leave多次吧??
我不知我想的对不对??
(1)当通过使用键盘(Tab、Shift+Tab 等)、通过调用 Select 或 SelectNextControl 方法或者通过将 ContainerControl.ActiveControl 属性设置为当前窗体等方式更改焦点时,焦点事件按以下顺序发生:
Enter --> GotFocus --> Leave --> Validating --> Validated --> LostFocus (2)当通过使用鼠标或调用 Focus 方法的方式更改焦点时,焦点事件按以下顺序发生:
Enter --> GotFocus --> LostFocus --> Leave --> Validating --> Validated 二、取消
(1)如果 CausesValidation 属性设置为 false,则将取消 Validating 和 Validated 事件。
(2)如果在 Validating 事件委托中,CancelEventArgs 的 Cancel 属性设置为 true,则正常情况下将在 Validating 事件之后发生的所有事件均被取消。
ValueChanged 当 Value 属性更改时发生
在引发该事件前验证用户输入。当输入的日期早于 MinDateTime 或晚于 MaxDateTime 时,不引发该事件。
if(DateTime.Compare(this.dateTimePicker1.Value,this.dateTimePicker2.Value)>0)
{
}
难怪我主管说我每次Event都用错…
呵!!我还是用ValueChanged好了…
感谢各位大大啰!!