我想在DBGrid中用Enter键代替Tab键为何实现不了(100分)

  • 主题发起人 主题发起人 K
  • 开始时间 开始时间
K

K

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在DBGrid中用Enter键代替Tab键,我在大富翁中找到了这个问题的
答案,可我就是实现不了。
把 form 的 keyPreview:=true
procedure TwyFormrk.DBGrid1KeyPress(Sender: TObject;
var Key: Char);
begin
if key=#13 then

begin

Perform(CM_DialogKey,Vk_TAB,0);

key:=#0;
end;

end;
在DGbrid中按Enter就跳到其他控件上,按Tab光标就不见了.
还有其他的方法我都试过。
 
要用回车键代替TAB键下移一个控件时,把KeyPress设为True,加入下列代码拦
截击键:
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;
 
pxlei当我用你的方法时出现如下错误
[Error] krk.pas(346): Illegal character in input file: ' ' ($A1A1)
 
用Tab键无非就是要向后移动光标,可以用一个笨办法,即Enter时,调用“->“键头键,
再设置一下条件,在最后一个字段时移到下一记录。我在vb中这样用过,你也许可以试试。
 
lyshulin那跟调用tab键不是一样的道理吗,
虽然这是个老问题
请各位大侠能赶快帮我解决这个问题
我不知道问题出在那里,谢谢
 
多人接受答案了。
 
后退
顶部