怎样用回车实现在DBGrid中向右移动,就象按Tab键一样?也就是完全用Enter键代替Tab键?

解决方案 »

  1.   

    onKeyPressif key = #13 then
      key := #9;
      

  2.   

    Procedure 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; 
      

  3.   

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
     with TDBGrid(Activecontrol)do
     begin
       if not(key=#13)then
         begin
           key:=#0;
           showmessage('对不起!该表格仅供阅览');
         end
       else if key=#13 then
         begin
               if selectedindex<(fieldcount-1) then selectedindex:=selectedindex+1
               else
                 begin
                    if not table1.Eof then
                       begin
                         table1.next;
                         selectedindex:=0;
                      end;
                   if table1.Eof then showmessage('已到库尾!');
                end;//end of else
       end;//end of if with
      

  4.   

    Procedure 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; 并将Form的keyPrew设置为TRue