rt

解决方案 »

  1.   


    在form 中的FormKeyPressProcedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
    Begin
     if key=#13 then { 判断是按执行键}
     if not (ActiveControl is TDbgrid) Then
     Begin { 不是在TDbgrid控件内}
      key:=#0;
      perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
     end else
     if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
     begin
      With TDbgrid(ActiveControl) Do
      if Selectedindex<(FieldCount-1) then  Selectedindex:=Selectedindex+1{ 移动到下一字段}
      else Selectedindex:=0;
     end;
    End; 然后在dbgrid 的onKeyPress中
     begin
      keypress(key);
     end;
      

  2.   

    1.dbgrid
    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
          if form1.DBGrid1.SelectedIndex<=form1.DBGrid1.FieldCount-1 then
            form1.DBGrid1.SelectedIndex:=form1.DBGrid1.SelectedIndex+1
          else
            form1.DBGrid1.SelectedIndex:=0;
      end;
    end;
      

  3.   

    2.stringgrid
    procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
        if form1.StringGrid1.Col<form1.StringGrid1.ColCount-1 then
          form1.StringGrid1.Col:=form1.StringGrid1.Col+1
        else
        begin
          if form1.StringGrid1.Row<form1.StringGrid1.RowCount-1 then
          begin
            form1.StringGrid1.Row:=form1.StringGrid1.Row+1;
            form1.StringGrid1.Col:=0;
          end;
        end;
      end;
    end;