我在DBGrid1的OnKeyDown事件中:
if key=vk_return then
  postmessage(dbgrid1.Handle,wm_keydown,vk_tab,0);
这样在DBGrid1中点回车键时就会自动跳到下一单元格.
该页面第一次显示时运行正常,但是当第二次打开该页面时在DBGrid1中按回车键时它就会跳到下一行,而不是下一单元格.百思不得其解.请高手指点.

解决方案 »

  1.   

    这样写:
    with DBgrid1 do
    selectedindex :=selectedindex+1;
      

  2.   

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then 
         if Dbgrid.selectedindex <Dbgrid.FieldCount-1 Then
         begin
               Dbgrid.Selectedindex:=Dbgrid.Selectedindex+1
         end
          else
          begin
                table1.next;
                Dbgrid.Selectedindex:=0
          end;
       end;
      

  3.   

    procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    CASE KEY OF
    vk_return:key:=vk_tab;