请教:  Delphi中通常使用Tab键移动光标,那么如何使用回车键来代替?  多谢!

解决方案 »

  1.   

    type
    private
        Procedure CMDialogKey(Var Message :TCMDialogKey); Message CM_DialogKey;Procedure TForm.CMDialogKey(Var Message :TCMDialogKey);
    begin
     if (GetParentForm(Self).ActiveControl is TButtonControl) then
      inherited
     else
       if (Message.CharCode = VK_RETURN) then
        begin
         GetParentForm(Self).Perform(CM_DialogKey,VK_TAB,0);
         Message.Result := 1;
        end  else
             inherited;
    end;
      

  2.   

    简单的说如果你在EDIT1中回车换到EDIT2
    procedure Tform.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        Edit2.SetFocus;
    end;
      

  3.   

    我在程序中也是采用:if  Key  =  #13  then Edit2.SetFocus 但是当出现一个对话框时,点击鼠标,Edit2可以得到焦点。如果回车则同时也触发Edit2的回车事件!这是我所不想看到的情况!多谢!能不能换个方法?
      

  4.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then Perform(WM_NEXTDLGCTL, 0, 0);
    end;
      

  5.   

    procedure Tform.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then
        Edit2.SetFocus;
    end;
      

  6.   

    procedure Tab(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (key=VK_Down) or (key=13) then
       SelectNext(ActiveControl,True,True);
      if key=VK_Up then
       SelectNext(ActiveControl,False,True);
    end;建立这个Tab过程,然后把需要执行回车功能的控件写上Tab这个过程即可,如:  Edit1.OnKeyDown:=Tab;