请使用过ExpressQuantumGrid的朋友指点一下,如何用enter键实现tab的功能(50分)

  • 主题发起人 主题发起人 QY208
  • 开始时间 开始时间
Q

QY208

Unregistered / Unconfirmed
GUEST, unregistred user!
目的:按enter键实现在控件间的焦点转移
如果是普通的dxDBEdit,我可以用如下方法实现:在相应控件的onkeypress事件里
通过发送enter键的消息给tab键,达到按enter键实现tab的功能目的
if key=#13 then
begin
PostMessage(dxDBEdit1.Handle, WM_KEYDOWN, VK_TAB, 0);
key:=#0;
end;
但是如果控件是dxDBLookupEdit,上述方法失效,各位给点提示好吗?
 
SendMessage(GetParentForm(dxDBLookupEdit).Handle, WM_NextDlgCtl, 0, 0);
都是对的

-----
http://www.8421.org
 
在dxdbgrid1.optionEX中增加egoEnterThrough
 
to qdyoung:
多谢,但不行,请大侠试试看
 
to flysand:
你说的是dxdbgrid吧,我用的是单独的dxDBLookupEdit,
没有你说的选项
 
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;

//一定行
 
to w.th:
大哥,请看仔细些问题
 
问题我已经解决,虽然不是用上述各位的方法,
但还是谢谢大家热心帮助
 
接受答案了.
 
后退
顶部