注册 登录
编程论坛 Delphi论坛

怎样解决回车、Tab键在DBGrid表单元格的移动问题?

mycolour 发布于 2007-11-05 16:20, 3699 次点击

怎样解决回车、Tab键在DBGrid表单元格的移动问题?

按通常的编辑习惯,在电子表中键入回车,光标会向右移动一格,但delphi的DBGrid表键入回车及TAB键都原地不动,怎样解决?

谢谢!!!

5 回复
#2
wufuxin332007-11-05 16:48
将DBGrid1.Options的[dgtabs]属性设为TRUE可以TAB移动,回车移动可自已编代码
#3
mycolour2007-11-05 22:10
谢谢楼上的。
代码怎样写呢?

[此贴子已经被作者于2007-11-5 22:18:11编辑过]

#4
phonbob2007-11-06 10:42
key=??
#5
wufuxin332007-11-06 16:17
如果在KeyPress事件中
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if ord(key)=13 then '你的代码';
end;


如果在KeyDown事件中
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=13 then '你的代码';
end;
#6
mycolour2007-11-08 16:55
我解决了,谢谢!

Procedure TForm1.FormKeyPress(Sender:Tobject;Var Key:Char);
Begin
 if key=#13 then { 判断是按执行键}
 if not (ActiveControl is TDbgrid) Then
 Begin { 不是在TDbgrid控件内}
  key:=#0;
  perform(WM_NEXTDLGCTL,0,0);{移动到下一个控件}
 end else
 if (ActiveControl is TDbgrid) Then{是在 TDbgrid 控件内}
 begin
  With TDbgrid(ActiveControl) Do
  if Selectedindex<(FieldCount-1) then
  Selectedindex:=Selectedindex+1{ 移动到下一字段}
  else Selectedindex:=0;
 end;
End;
1