Winforms 中的 DateTimePicker 有一个奇怪的地方。如果将焦点设置于非第一个位置上(比如dd/mm/yyyy 中的 mm 或 yyyy) 在这时按下 Tab 切出再切入的时候,焦点也不会切换至第一个位置,即使你重置或者改变 Picker 的值。
对于这个问题目前并没有一个OK的解决方案,因为控件并不会将内部的方法公之于众。或许你会使用模拟鼠标/键盘来改变焦点,但现在还有比这个令人捉鸡的方法更加简单的。下面的代码将会让控件重新创建并保留其原有格式已达到效果:
var format = dateTimePicker1.Format; dateTimePicker1.Format = DateTimePickerFormat.Custom; dateTimePicker1.Format = format;
其实就是通过更改格式然后将其设置回控件让其重置自身。 PS 上面的代码假定它不是Custom 格式。如果你有更好的方法,或者 Microsoft 提供了更加体面的方法来做这件事情,请与我分享。