一般地在FORM上放几个EDIT,直接用写代码在FORM的ONKEYPRESS中或用DOSMOVE第三方控件都可以解决,但下面这个可能特殊,FORM上放了一个PANEL,aligh := alclient,上面放了一个TPAGECONTROL,下方是两个button,在PAGECONTROLL上放了一个groupbox,groupbox 上放了几个edit,如果用上述方法则不能实现这几个EDIT的移动,只要在edit 中enter,则直接跳到button上处理了,大家有什么办法吗?

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      KeyPreview := True;
    end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      case Key of
        VK_RETURN: SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);
      end;
    end;没有出现你说的情况
    你把窗体代码和程序代码都贴出来分析看看
      

  2.   

    检查一下,tab order的顺序是否设置正确了
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       if Integer(Key)=VK_RETURN then
          Edit2.SetFocus;
    end;procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
    begin
       if Integer(Key)=VK_RETURN then
          Edit3.SetFocus;     //或者Button1.SetFocus; 随便你怎么写
    end;
      

  4.   

    VK_RETURN: SendMessage(Handle, WM_NEXTDLGCTL, 0, 0);这个应该可以吧.
      

  5.   

    多谢大家了,找到原因了,我把两个按钮kind设置为OK,CANCEL这个有问题,设为普通按钮就行了