DBGrid中回车健进行新增问题 ( 积分: 3 )

  • 主题发起人 主题发起人 zpselect
  • 开始时间 开始时间
Z

zpselect

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = vk_return then
begin
if DBGrid1.SelectedIndex = DBGrid1.FieldCount - 1 then //是最后一列时
begin
if query.Eof then
query.Append//如果是最后一笔记录那么新增
else
query.Next;//如果不是最后一笔记那么移至下一笔记录处
DBGrid1.SelectedIndex := 0;
end
else DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;
end;
end;
帮我修改一下这段代码,功能要求:
1:当是最后一行且是最后一列时,数据集新增
2:如果是最后一行且不是最后一列时,移至此行的下一列
 
DBGrid 好象到最后一条记录的最后一个字段 在按tab就自动添加呀
按tab键到最后一条记录的最后一个字段的时候添加
所以 如果你要是想到最后一条记录最后一个字段添加 可以按tab键
你想要的就是按enter键实现tab键的效果
所以你可以在DBGrid1KeyDown事件里面写
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=#13 then
keybd_event(9,mapvirtualkey(9,0),0,0);
end;
就可以实现你想要的效果了
 
不要想的太复杂
key 好象写错了
应该是
if key = 13 then
keybd_event(9,mapvirtualkey(9,0),0,0);
 
谢谢,散分了!
 
多人接受答案了。
 
后退
顶部