请教一下datetimepicker如果在获得焦点的时候自动定位到日期上。

busfly001 2006-06-04 02:27:54
现在datetimepicker在获得焦点的时候自动定位到年份上,
那么如何才能让datetimepicker在获得焦点的时候自动定位到日期呢?这样方面数字输入。
...全文
597 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
deansroom 2006-06-07
  • 打赏
  • 举报
回复
学习
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
DateTimePicker1.SetFocus;
SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,VK_LEFT,0);
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
刚才是向右移动光标,需要的时候,再向左移动。
busfly001 2006-06-06
  • 打赏
  • 举报
回复
谢谢wudi_1982的精彩作答!
问题时,下次到这个位置的时候,DateTimePicker1会默认到焦点日上
这个时候就不能再发送SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,VK_RIGHT,0);
了,那么如何解决呢???
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
Delphi帮助里的虚拟键值表:
VK_RIGHT Right Arrow key
VK_DOWN Down Arrow key
VK_SELECT Select key
VK_PRINT Print key (keyboard-specific)
VK_EXECUTE Execute key
VK_SNAPSHOT Print Screen key
VK_INSERT Insert key
VK_DELETE Delete key
VK_HELP Help key

VK_LWIN Left Windows key (Microsoft keyboard)
VK_RWIN Right Windows key (Microsoft keyboard)
VK_APPS Applications key (Microsoft keyboard)
VK_NUMPAD0 0 key (numeric keypad)
VK_NUMPAD1 1 key (numeric keypad)
VK_NUMPAD2 2 key (numeric keypad)
VK_NUMPAD3 3 key (numeric keypad)
VK_NUMPAD4 4 key (numeric keypad)
VK_NUMPAD5 5 key (numeric keypad)
VK_NUMPAD6 6 key (numeric keypad)
VK_NUMPAD7 7 key (numeric keypad)
VK_NUMPAD8 8 key (numeric keypad)
VK_NUMPAD9 9 key (numeric keypad)

VK_MULTIPLY Multiply key (numeric keypad)
VK_ADD Add key (numeric keypad)
VK_SEPARATOR Separator key (numeric keypad)
VK_SUBTRACT Subtract key (numeric keypad)
VK_DECIMAL Decimal key (numeric keypad)
VK_DIVIDE Divide key (numeric keypad)
VK_F1 F1 key
VK_F2 F2 key
VK_F3 F3 key
VK_F4 F4 key
VK_F5 F5 key
VK_F6 F6 key
VK_F7 F7 key
VK_F8 F8 key
VK_F9 F9 key
VK_F10 F10 key
VK_F11 F11 key
VK_F12 F12 key
VK_F13 F13 key
VK_F14 F14 key
VK_F15 F15 key

VK_F16 F16 key
VK_F17 F17 key
VK_F18 F18 key
VK_F19 F19 key
VK_F20 F20 key
VK_F21 F21 key
VK_F22 F22 key
VK_F23 F23 key
VK_F24 F24 key
VK_NUMLOCK Num Lock key
VK_SCROLL Scroll Lock key
VK_LSHIFT Left Shift key (only used with GetAsyncKeyState and GetKeyState)
VK_RSHIFT Right Shift key (only used with GetAsyncKeyState an
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
DateTimePicker1.SetFocus;

SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,VK_RIGHT,0);
SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,VK_RIGHT,0)

39是VK_RIGHT的虚拟键值。。通用的,就用上面这个,程序容易理解,就是把焦点移动到dataetimepicker上后,模拟光标vk_right被按下。
myanwei 2006-06-06
  • 打赏
  • 举报
回复
还真没有遇到过这个问题.学习了.
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
定位到日的是
DateTimePicker1.SetFocus;
SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,39,0);
SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,39,0)

原理就是先把焦点移动到DateTimePicker1,然后发送消息WM_KEYDOWN
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
上面是定位到月上
wudi_1982 2006-06-06
  • 打赏
  • 举报
回复
定位到日上
DateTimePicker1.SetFocus;
SendMessage(DateTimePicker1.Handle,WM_KEYDOWN,39,0)
busfly001 2006-06-06
  • 打赏
  • 举报
回复
不是啊,是自动定位到日上.
比如2006-06-07,能自动定位到07上。
wudi_1982 2006-06-05
  • 打赏
  • 举报
回复
procedure TForm1.Button1Click(Sender: TObject);
begin
DateTimePicker1.SetFocus;
end;
busfly001 2006-06-05
  • 打赏
  • 举报
回复
呵呵,谢谢两位
mjtalhx 2006-06-04
  • 打赏
  • 举报
回复
up
lzg827 2006-06-04
  • 打赏
  • 举报
回复
很有新意的问题
我怎么没想过呢?

不会,请会者做答

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧