我正在尝试确定日期(或时间)编辑器的当前选定部分。当使用 PDA 上的导航键时,我需要提供自定义操作。特别是当按下右键并选择日期的最后一部分(例如年份)时,我希望焦点转到下一个控件。默认行为是循环浏览日期部分。
我查看了 DateTimePicker (链接)的 Win32 API 选项,但它似乎不支持这一点。
有什么建议么?
我正在尝试确定日期(或时间)编辑器的当前选定部分。当使用 PDA 上的导航键时,我需要提供自定义操作。特别是当按下右键并选择日期的最后一部分(例如年份)时,我希望焦点转到下一个控件。默认行为是循环浏览日期部分。
我查看了 DateTimePicker (链接)的 Win32 API 选项,但它似乎不支持这一点。
有什么建议么?
.Net cf 日期选择器是一个 PITA。
当焦点位于日期选择器上时,您是否尝试过捕获和覆盖“右”按钮的KeyUp 事件?您可以计算按下“右”键的次数,通过这种方式您可以伪造位置设置:当日期选择器接收焦点时将计数器变量设置为 1,当您截获“右”键时将其递增 1。测试它是否是“Right”键以及计数器变量是否是三的倍数设置 e.Handled = true 以防止执行默认行为。当然,您的覆盖逻辑是将焦点设置到下一个控件。
编辑:不要忘记在“左”键按下时减少计数器变量!
自定义选项:我认为您最好的选择是构建您自己的自定义日期控件。我已经做到了。这不是太难。这是对齐控件中的三个文本框并进行一些基本验证的问题。如果需要,您还可以使用选择器的日历部分。
在OpenNetCF中扎根也是值得的。虽然我不确定是否会有日期选择器的替代品,但里面有很多课程。不过,如果你是认真的 CF 开发者,还是值得一看的。