关于设置 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].

Table of Contents

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

guest

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

0 Comments
Inline Feedbacks
View all comments