我正在尝试确定日期(或时间)编辑器的当前选定部分。我需要在使用PDA上的导航键时提供自定义操作。特别是当我按下右键并选择日期的最后一部分(例如年份)时,我希望焦点转到下一个控件。默认行为是循环显示日期部分。
我查看了DateTimePicker(link)的Win32 API选项,但它似乎不支持此功能。
有什么建议吗?
答案 0 :(得分:0)
.Net cf日期选择器是PITA。
当焦点在日期选择器上时,您是否尝试过捕获并覆盖“{3}}的”右侧“按钮?您可以计算按下“右”键的次数,这样您就可以伪造位置设置:当日期选择器获得焦点时将计数器变量设置为1,并在截取“右”键时将计数器变量加1。测试它是否是“正确”键,如果计数器变量是三个设置的倍数e.Handled = true以保持默认行为不执行。当然,你的覆盖逻辑是将焦点设置为下一个控件。
编辑:不要忘记按“左”键按下减计数器变量!
自定义选项:我认为您最好的选择是构建自己的自定义日期控件。我做到了这一点。这不是太困难。这是在控件中对齐三个文本框并进行一些基本验证的问题。如果需要,您还可以使用选择器的日历部分。
在KeyUp event中找到它也是值得的。虽然我不确定是否会有日期选择器的替代品,但它里面有大量的课程。不过,如果你做了严肃的CF开发,那值得一看。