FireMonkey:如何将下一个控件集中在vkReturn上?

Whi*_*ler 4 delphi multiplatform keyevent firemonkey

经典的VCL问题 ......但是如何在FireMonkey中做同样的事情

我有几个TControl可以专注的标准......

例如,在某些情况下,TEdit如果按下按钮,我想转到下一个可聚焦控件return key

我尝试了不同的方法,但没有成功(替换密钥,keychar为9时为13,......,将关键事件转发给表单,......)

当然,因为它是FMX,我想要一个适用于所有平台的解决方案......

如果可以避免:

  • 浏览父母的儿童财产,
  • 有不同的代码片段来处理不同的平台
  • 硬编码标签序列
  • ......,它会很棒; o)

Uwe*_*abe 9

您可以将以下代码放入窗体的OnKeyDown事件中:

  if Key = vkReturn then begin
    Key := vkTab;
    KeyDown(Key, KeyChar, Shift);   
  end;
Run Code Online (Sandbox Code Playgroud)

如果只希望某些控件具有该行为,则必须在这些控件的OnKeyDown事件中调用此代码.

请注意,KeyDown必须调用TForm.KeyDown才能使其正常工作.

(用XE2测试)