在用DBEDIT显示数据的,如何才能实现按车键实现TAB键的功能

解决方案 »

  1.   

    if key=#13 then
    dbedit1.setfocus;
      

  2.   

    keypress中写:
      if key=enter键 then key=tab键
      

  3.   

    begin
      if Key = #13 then                              {回车键 }    if not (ActiveControl is TDBGrid) then begin { if not on a TDBGrid }
          Key := #0;                                 { eat enter key }
          Perform(WM_NEXTDLGCTL, 0, 0);              { move to next control }
        end
        else if (ActiveControl is TDBGrid) then      { if it is a TDBGrid }
          with TDBGrid(ActiveControl) do
            if selectedindex < (fieldcount -1) then  { increment the field }
              selectedindex := selectedindex +1
            else
              selectedindex := 0;end;
      

  4.   

    keypress中写:
      if key=#13 then 
        edit2.setfocus;
      

  5.   

    在FORM的KEYPRESS中写入
      if key=#13 then
        begin
          key:=#0;
          perform(WM_NEXTDLGCTL,0,0);
        end;
      

  6.   

    procedure Tform1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=chr(13) then Edit2.SetFocus;
    end;
    或procedure Tform1.Edit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    begin
      if key=Vk_Return then Edit2.SetFocus;
    end;
      

  7.   

    1、 Taborder Tabstop:  这组表识号本来是用来表示组件的按键顺序以及在该组件上是否停留的标识号。但是如果在某些时候稍微重视一下的话,将会事半功倍。下面略举一例:桌面上有几个编辑框,用户希望按回车键、上下方向键而不是TAB在其间来回游动。 > 属性及相关值:
    MainFrame: KeyPreview = True
    Edit_Name :TabOrder = 0;
    Edit_Age :TabOrder = 1;
    Edit_Adress :TabOrder = 2;> 代码及说明:
    在interface 的private定义一个过程
    procedure TForm1.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);
      Key:=0;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    Edit_Name. OnKeyDown  = Tab;
    Edit_Age .OnKeyDown = Tab;
    Edit_Adress . OnKeyDown = Tab;
    end;
    ---- 当然,我们可以利用Delphi的灵活性更加方便的达到这个目的:移动到对象查看器,在Edit_Name的OnKeyDown中输入Tab后回车,Delphi自动创建该事件,然后将Edit_Age及Edit_Adress 的OnKeyDown事件连接到Tab即可(方法很简单:分别到各组件的OnKeyDown事件处下拉并选择Tab即可)。