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

解决方案 »

  1.   

    好象是Edit1响应不了
    KeyPress,form可以
      

  2.   


    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key in [38,40] then
      Edit2.SetFocus;
    end;
      

  3.   


    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;
      

  4.   

    用FormKeyDown可以,设Form的KeyPreview为true
    我一直用的程序:
    上/下键进入上/下控件,回车进入下一个,ESC关闭Formprocedure 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;