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;