主题:猎取键盘信息问题
l296233
[专家分:0] 发布于 2006-09-29 12:03:00
如何让 Edit1 框内的焦点在按下<回车>后自动跳转到 Edit2 框内?
望指教!谢谢!
回复列表 (共9个回复)
沙发
冰封星云 [专家分:2260] 发布于 2006-09-29 12:40:00
默认的好象就可以的啊,如果你的关了就开下,有个属性可以实现,记不清咯,反正和TAB有关的
板凳
l296233 [专家分:0] 发布于 2006-09-29 15:31:00
就两个属性:TabOrder、TabStop,怎样设置都不行!
我想知道如何用 OnKeyPress事件 来控制焦点的转移,包括按钮!
望楼上或各位不吝赐教!谢谢!
3 楼
aizaixiiii [专家分:2130] 发布于 2006-09-29 16:20:00
//以回车代TAB
procedure TfmBaseFrm.BaseKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
(Sender as TForm).Perform(WM_NEXTDLGCTL,0,0);
key := #0;
end;
end;
4 楼
l296233 [专家分:0] 发布于 2006-09-29 16:45:00
很好,太谢谢了!
5 楼
xiaohongna [专家分:180] 发布于 2006-09-30 13:46:00
晕 ~~不用消息就行~~
if key=#13 then
edit2.setfocuse;
就行了
6 楼
冰封星云 [专家分:2260] 发布于 2006-09-30 13:53:00
不同意楼上的,你的方法只能是事先指定好下一控件,这样一来,每个都要指定才行
7 楼
xiaohongna [专家分:180] 发布于 2006-09-30 14:16:00
如何让 Edit1 框内的焦点在按下<回车>后自动跳转到 Edit2 框内
~~
他不就是这个意思啊!
~~
难道 postmessage(self.handle,WM_NEXTDLGCTL,0,0);
如果他的edit2的taborder不是edit1的下一个也不行啊,
用postmessage(self.handle,WM_NEXTDLBCTL,edit2.handle,1) 也麻烦啊
8 楼
mofashi [专家分:0] 发布于 2006-10-11 21:15:00
可以设定第一个EDIT为焦点。比如设他为I:=0;那下一个焦点就是I:=1;
只要他判断他在I:=0时就I:=1就好了~
9 楼
长尾兔 [专家分:3630] 发布于 2007-08-08 12:30:00
学习三楼。正解。
我来回复