关于设置 DateTimePicker 中的焦点

DateTimePicker 不会自动让焦点归位至第一个位置,这里是一些奇怪但是有效的解决方法。

Winforms 中的 DateTimePicker 有一个奇怪的地方。如果将焦点设置于非第一个位置上(比如dd/mm/yyyy 中的 mm 或 yyyy) 在这时按下 Tab 切出再切入的时候,焦点也不会切换至第一个位置,即使你重置或者改变 Picker 的值。

对于这个问题目前并没有一个OK的解决方案,因为控件并不会将内部的方法公之于众。或许你会使用模拟鼠标/键盘来改变焦点,但现在还有比这个令人捉鸡的方法更加简单的。下面的代码将会让控件重新创建并保留其原有格式已达到效果:

 var format = dateTimePicker1.Format;
 dateTimePicker1.Format = DateTimePickerFormat.Custom;
 dateTimePicker1.Format = format; 

其实就是通过更改格式然后将其设置回控件让其重置自身。 PS 上面的代码假定它不是Custom 格式。如果你有更好的方法,或者 Microsoft 提供了更加体面的方法来做这件事情,请与我分享。

– – – – –

I’m JokerM.

This post was translated and edited by me.

To report a copyright issue or abuse, please contact [email protected].

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Share on facebook
Share on twitter
Share on telegram
Share on whatsapp
Share on email