if (key=vk_right)or(key=vk_return) then
begin
if dm.gsblisttable.eof then
gsblisttable.append;
end;

解决方案 »

  1.   

    要想光标移动到下一列,可以模拟键盘操作
    If SelectedIndex=FieldCount-1 
    then 
      Begin
      Selected:=0;
      aa:=lo(mapvirtualkey(VK_Down,0)); //aa:byte
      keybd_event(vk_down,aa,0,0);
      end;
      
      

  2.   

    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      ls:integer;
    begin
    ls:=dbgrid1.SelectedIndex;
    if key=vk_return then
      if ls=dbgrid1.Columns.Count-1 then begin
      datasource1.DataSet.Next;
      dbgrid1.SelectedIndex:=0;
      end
      else
      dbgrid1.SelectedIndex:=dbgrid1.SelectedIndex+1;end;