我在做一个录入的界面,录入的控件是用edit,在录入控件中进行切换的是用上下箭头键。例如用上箭头键是从edit2跳到edit1,按下箭头是从EDIT1跳到EDIT2。procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=Chr(38) then Edit2.SetFocus;
end;procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=Chr(40) then Edit2.SetFocus;
end;但就是不能跳转,不知道有什么好方法

解决方案 »

  1.   

    把if key=Chr(40) then Edit2.SetFocus; 这句写到onkeydown事件里
      

  2.   

    要注意在onkeypress和onkeydown里,key的类型不一样,写成这样就OK了procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key= 40 then Edit2.SetFocus;
    end;procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key= 38 then Edit1.SetFocus;
    end;
      

  3.   

    建議寫個基類TFORM,把事件寫在里面,後面的直接引用即可,簡單
      

  4.   

    呵呵  可以啦
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; 
      Shift: TShiftState); 
    begin 
    if key= 40 then Edit2.SetFocus; 
    end; procedure TForm1.Edit2KeyDown(Sender: TObject; var Key: Word; 
      Shift: TShiftState); 
    begin 
    if key= 38 then Edit1.SetFocus; 
    end;
    这个答复最满意,谢谢!