1。如何能实现dbgrid控件敲回车健光标自动移到下一列?
2。如何能实现dbgrid控件敲delete自动删除输入的纪录?

解决方案 »

  1.   

    问题1,在onkeydown中加入
     if Key=Vk_Return then begin
      Key:=0;
      KeyBd_Event(Vk_Tab,0,0,0);
    问题2 是什么意思?没太看懂
      

  2.   

    procedure TDBGrid1.KeyDown(var Key: Word; Shift: TShiftState);
    ...
      if Key = VK_RETRUN then
        Key := VK_TAB
      else if Key = VK_DELETE then
        (Sender as TDBGrid).DataSource.DataSet.Delete;...
      

  3.   

    首先,在form中设置keyprievw 为true,然后在dbgrid中设置onkeydown,将enter键转化为tab键
      

  4.   

    procedure TDBGrid1.KeyDown(var Key: Word; Shift: TShiftState);
    begin
      if (Key = 13) and TDBGrid.EditorMode then
        TDBGrid.Perform(WM_KeyDown,9,0)
    end;
      

  5.   

    to Snakeguo(楠) (莫等闲&up2myself):
    (Sender as TDBGrid).DataSource.DataSet.Delete;
    这条语句有问题。
      

  6.   

    在dbgrid的OnKeyPress事件内加入
      if key = #13 then
        keybd_event(vk_TAB,0,0,0);
      

  7.   

    建议用dbGridEh控件(Data Controls中),用法同DbGrid一样
    直接设置Options->dgTabs为True就可以了,而且可以实现统计等功能
      

  8.   

    1、在KeyPress事件中添加 if key = #13 then
        keybd_event(vk_TAB,0,0,0);2、在KeyDown事件中添加
      if Key = VK_DELETE then
        (Sender as TDBGrid).DataSource.DataSet.Delete;
      

  9.   

    if not (ActiveControl is TDBGrid) then
            begin          perform(WM_NextDLGCTL,0,0)
            end
    form.keypreview:=true;
      

  10.   

    procedure TFrmBatFile.DBGrdFileKeyPress(Sender: TObject; var Key: Char);
    begin
      if key =#13 then
        keybd_event(VK_TAB,0,0,0);
    end;