在dbgrid中,输入第一列第一字段后,按方向键到第二个字段,结果焦点跳不到第二个字段。
非得用tab键才能切换到第2个字段。
如果实现[->]这个向右的键与tab一样的功能呢?

解决方案 »

  1.   

    一般是在onkeydown事件里实现以回车等同tab的效果
      

  2.   


    定义全局变量
    vg_index:integer;procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key=39 then
        self.DBGrid1.Columns.Grid.SelectedField:=self.DBGrid1.Columns.Grid.Fields[self.vg_index];
      if key=37 then
        self.DBGrid1.Columns.Grid.SelectedField:=self.DBGrid1.Columns.Grid.Fields[self.vg_index-1];
    end;
    procedure TForm1.DBGrid1ColEnter(Sender: TObject);
    begin
      self.vg_index:=self.DBGrid1.SelectedIndex;
    end;
      

  3.   

    self.DBGrid1.Columns.Grid.SelectedField:=self.DBGrid1.Columns.Grid.Fields[self.vg_index];
    改成:self.DBGrid1.Columns.Grid.SelectedField:=self.DBGrid1.Columns.Grid.Fields[self.vg_index+1]; 就ok了