TDBGrid第一行第一列中连续按Enter,光标先向左移动,移到末列时就移到下一行.
怎么样实现~~
是不是要在DBGridDblEnter中
 if DBGrid.SelectedField = 第一列 then
 DBGrid.SelectedField  := 第二列;
  if DBGrid.SelectedField = 第二列 then
 DBGrid.SelectedField  := 第三列;
…………
应该不会是这样写吧~~

解决方案 »

  1.   

    if dbgird.selectedindex>=dbfird.field.count then
        slectedindex:=seectedinex+1
    else
        next;
      

  2.   

    if DBGrid1.selectedindex>=DBGrid1.FieldCount then
        DBGrid1.selectedindex:=DBGrid1.selectedindex+1
    else
        table1.next;是不是这样~~不会动啊~
      

  3.   

    if DBGrid1.selectedindex<DBGrid1.FieldCount-1 then
        DBGrid1.selectedindex:=DBGrid1.selectedindex+1
    else
        table1.next;
      

  4.   

    procedure Tmainform.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if key=13 then { 判断是按执行键}
             begin
               With TDbgrid(ActiveControl) Do
                  if Selectedindex<(FieldCount-1) then
                     Selectedindex:=Selectedindex+1{ 移动到下一字段}
                     else
                       begin
                       Selectedindex:=0;
                       dbgrid1.DataSource.DataSet.fields[0].readonly:=false;
                       tdbgrid(activecontrol).datasource.dataset.append;
                       tdbgrid(activecontrol).datasource.dataset.fields[0].asstring:=inttostr(tdbgrid(activecontrol).datasource.dataset.recordcount+1);
                       tdbgrid(activecontrol).datasource.dataset.post;
                       dbgrid1.DataSource.DataSet.fields[0].readonly:=true;
                       Selectedindex:=Selectedindex+1;
                       mainform.StatusBar1.Panels[0].Text:='学生在记总数为:'+inttostr(tdbgrid(activecontrol).datasource.dataset.recordcount);
                       end;
             end;
    end;祝:身体健康,答案和分数同样重要:)!!