Winforms DevExpress日期编辑存储库编辑器日期验证

Winforms DevExpress日期编辑存储库编辑器日期验证,winforms,validation,devexpress,Winforms,Validation,Devexpress,如果用户要键入日期并从下拉日历小部件中进行选择,那么捕获输入值(无论是键入的还是拾取的)的最佳事件在哪里?如果日期未通过某些验证,则警告用户,如果用户决定不覆盖警告,则最后将编辑值回滚到原来的位置 我们需要允许日期在过去,但要防止意外的日期在过去,这通常发生在用户习惯于键入(比如全年的2011年)后的新年头几个月,然后当年份更改为2012年时,他们出于习惯键入2011年。因此,这种验证只在一年的前几个月有效,而不是全年有效 我不知道如何回滚EditValueChanged中的值。args没有取消

如果用户要键入日期并从下拉日历小部件中进行选择,那么捕获输入值(无论是键入的还是拾取的)的最佳事件在哪里?如果日期未通过某些验证,则警告用户,如果用户决定不覆盖警告,则最后将编辑值回滚到原来的位置

我们需要允许日期在过去,但要防止意外的日期在过去,这通常发生在用户习惯于键入(比如全年的2011年)后的新年头几个月,然后当年份更改为2012年时,他们出于习惯键入2011年。因此,这种验证只在一年的前几个月有效,而不是全年有效


我不知道如何回滚EditValueChanged中的值。args没有取消选项。是否还有其他更好的事件可以处理键入的值和拾取的值?

使用EditValueChanged事件。它确实有一个Cancel事件,以及NewValue和OldValue。

我更喜欢使用控件的Validating event,从中可以获得CancelEventArgs,您可以使用它设置值以及控件的焦点。e、 取消将焦点设置在控件上。 例如:

if (txtName.Text == "")
{
     txtName.ErrorText = "Client Name should not be blank.";
     e.Cancel = true;
}