好的,我在我的程序中的datetimepicker字段中遇到了一些奇怪的行为。我通常使用短格式,并使用它们中的一对进行日期范围选择。
我遇到的问题是用户是否正在使用键盘进行输入。他们可以像平常一样通过字段选项卡和箭头来键入日期。但是,如果他们输入的日期部分没有填充掩码的部分,那么他们按回车键激活formdefault而不会将焦点从日期的那一部分移开,然后是DTP的值。运行ok_button.click事件是在输入更改之前它所具有的任何值。
举一个具体的例子:
用户选中日期字段。字段中的默认日期是今天的日期,即2015年4月14日。他们键入1,箭头指向日期,输入1,然后箭头指向年份并键入14,然后按Enter键。报告的DTP值将是2015年1月1日。如果他们实际输入2015年,或者使用箭头移动到另一个日期部分或标签以将焦点转移到另一个控件,DTP将自动更新以填写今年余下的时间。
如果他们在本月输入1然后点击输入,则会出现同样的问题,但如果他们在本月输入12则不会发生。
我能想到的唯一解决方案,我还没有尝试实现它,因为它听起来像一个真正的kludge,并要求我通过TON项目中的表单,将更改按键事件输入将焦点切换到OK按钮,然后调用formdefault 我会说我的表单上的大多数datetimepicker字段实际上都包含在用户控件中,所以如果这是一个可以在控件中更改或绑定到控件中的事件的属性,它将使更新更多,更容易