可以實現,你在這個字段的onchange事件裡寫, if dbgrid1.SelectedField=你的下拉字段 then dbgrid1.SelectedField:=下一個字段;用detail_dbg.SelectedIndex 也可以
//转个帖子 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 end; end; end;
if dbgrid1.SelectedField=你的下拉字段 then
dbgrid1.SelectedField:=下一個字段;用detail_dbg.SelectedIndex 也可以
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
end;
end;
end;