读书人

delphi上下键切换焦点,该如何处理

发布时间: 2012-03-15 11:50:38 作者: rapoo

delphi上下键切换焦点
请教各位大侠:
Delphi中用上下键或回车键切换输入框:
在edit1的OnkeyPress事件里:
if (key in[#13,#38]) then
begin
edit2.SetFocus ;
end;
为什么按回车键可以,而上键不可以?

=!!!!

[解决办法]
好象是Edit1响应不了
KeyPress,form可以
[解决办法]

Delphi(Pascal) code
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);begin  if Key in [38,40] then  Edit2.SetFocus;end;
[解决办法]
Delphi(Pascal) code
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin  if Key=#13 then    self.Edit2.SetFocus;end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);begin  if Key=40 then    self.Edit2.SetFocus;end;
[解决办法]
用FormKeyDown可以,设Form的KeyPreview为true
我一直用的程序:
上/下键进入上/下控件,回车进入下一个,ESC关闭Form
Delphi(Pascal) code
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);begin   case  key of       vk_down,vk_up:if activecontrol.tag=0 then                 selectnext(activecontrol,key=vk_down,true);       13: if activecontrol.tag=0 then                 selectnext(activecontrol,true,true);       27:close;    end;end; 

读书人网 >.NET

热点推荐