TDBGrid第一行第一列中连续按Enter,光标先向左移动,移到末列时就移到下一行

nvzishanhun123456789 2002-12-31 09:10:06
TDBGrid第一行第一列中连续按Enter,光标先向左移动,移到末列时就移到下一行.
怎么样实现~~
是不是要在DBGridDblEnter中
if DBGrid.SelectedField = 第一列 then
DBGrid.SelectedField := 第二列;
if DBGrid.SelectedField = 第二列 then
DBGrid.SelectedField := 第三列;
…………
应该不会是这样写吧~~
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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;

祝:身体健康,答案和分数同样重要:)!!
haojie 2003-01-07
  • 打赏
  • 举报
回复
if DBGrid1.selectedindex<DBGrid1.FieldCount-1 then
DBGrid1.selectedindex:=DBGrid1.selectedindex+1
else
table1.next;
  • 打赏
  • 举报
回复
if DBGrid1.selectedindex>=DBGrid1.FieldCount then
DBGrid1.selectedindex:=DBGrid1.selectedindex+1
else
table1.next;

是不是这样~~不会动啊~
rtewryery 2002-12-31
  • 打赏
  • 举报
回复
if dbgird.selectedindex>=dbfird.field.count then
slectedindex:=seectedinex+1
else
next;

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧