把代码写在onkeypress中
改动如下:
if dbgrid1.Columns.Count=dbgrid1.Columns.Items[dbgrid1.Columns.Count-1].Index+1 then
if key=#13 then key:=#9;

解决方案 »

  1.   

    procedure TForm1.doGridKeyPress(Sender: TObject; var Key: Char);
    var
      ind: Integer;
    begin
      if Key=#13 then
      begin
        Key := #0;
        with TDBGrid(Sender) do
        begin
          if SelectedIndex<FieldCount-1 then
            SelectedIndex:=SelectedIndex+1
          else
          begin
            SelectedIndex:=FixedCols;
            DataSource.DataSet.Next;
          end;
        end;
      end;
    end;
      

  2.   

    if key=13 then
    begin
      if not (Sender as TDBGrid).DataSource.DataSet.EOF then
        (Sender as TDBGrid).DataSource.DataSet.Next
      else
        (Sender as TDBGrid).DataSource.DataSet.First;
    end;