我有一张表,
    如:表AB,字段a,    b ,    c,     d
        
    表AB在DbGrib中显示,按回车键时,光标从A字段的值,跳到D字段的值上。
                   请各个大虾帮忙,急,急!

解决方案 »

  1.   

    将form的onkeyprview设为True
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
    if key=#13 then
    if (activecontrol is tdbgrid ) then
    begin
     with tdbgrid(activecontrol) do
       if selectedindex<(fieldcount-1) then
       selectedindex:=selectedindex+1
     else
     begin
       dbgrid1.DataSource.DataSet.Next ;
       selectedindex:=0;
     end;
    end;
      

  2.   

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key = #13 then begin
        keybd_event(VK_TAB, 0, 0, 0);
        keybd_event(VK_TAB, 0, 2, 0);
      end;
    end;procedure TForm1.DBGrid1ColEnter(Sender: TObject);
    begin
      if DBGrid1.SelectedIndex in [1, 2] then
        DBGrid1.SelectedIndex := 3;
    end;
      

  3.   

    如果硬性要求,你可以使用楼上的代码我想,既然要从a 跳到 d,那么b c应该是不可编辑子段吧,那该列应该是 readonly:=true那么:  with TDBGrid(ActiveControl) do
        if Selectedindex < (FieldCount - 1) then
        begin
          Selectedindex := Selectedindex + 1; // 移动到下一字段
          while (Columns[Selectedindex].ReadOnly = true) do
          begin
            Selectedindex := Selectedindex + 1;
            if Selectedindex = (FieldCount - 1) then
              Selectedindex := 0;
          end;
        end
        else Selectedindex := 0;