我正在尝试为主窗体内框架中的字段设置选项卡顺序,但是,永远不会激活编辑框。我只有在使用SetFocus函数时才能激活顶部编辑字段。我想念什么?
相关代码
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Frame31->Edit1->TabOrder = 0;
Frame21->Rectangle1->TabOrder = 1;
Frame22->Rectangle1->TabOrder = 2;
Button1->TabOrder = 3;
}
带有标签的应用屏幕截图
组件层次结构
参考
http://docwiki.embarcadero.com/Libraries/Rio/en/FMX.Controls.TControl.TabOrder
编辑
更新的问题以反映应用程序的设计;在应用程序屏幕截图中包含了组件层次结构图像和更新的标签。
TabOrder
每个父级起作用。表单是框架和按钮的父级。因此,设置
Frame31->Taborder = 0;
Frame21->Taborder = 1;
Frame22->Taborder = 2;
Button1->TabOrder = 3;
所有TEdit
控件都有单独的父级,因此可以保留默认值
TabOrder = 1;`.
TabStop = True;
如果在任何一帧上有多个TEdit
(或其他控件),则必须在这些控件之间指定TabOrder
。
编辑
我必须为帧的TabStop = False
表示歉意。在这种情况下,它没有任何作用。因此,只需将它们保留为默认值True
我可以确认,当您以TRectangle
作为TEdit
的父级时,[T0]将不会被制表。我无法解释为什么会这样,并且我没有在Embarcaderos质量报告系统上立即找到任何有关此的信息。
也许您可以删除矩形,或者直接将TEdit
重新排列为TEdit
的子元素,然后将其放置在TFrame
上,这样看起来就好像是TRectangle
的一部分。缺点是您可能会请勿将TRectangle
与TEdit
一起移动。
TRectangle