C# 是否在ASP.NET动态生成的控件中的文本框上设置TabIndex?

C# 是否在ASP.NET动态生成的控件中的文本框上设置TabIndex?,c#,asp.net,tabindex,composite-controls,C#,Asp.net,Tabindex,Composite Controls,我有一个复合控件,每个控件包含一个文本框(TextBoxA)和三个按钮(ButtonA,ButtonB,和ButtonC)。My page根据页面的状态动态生成n个这些CompositeControls 我已将TextBoxA的TabIndex设置为正值,在该控件的OnPreRender方法中,每个控件的值都会增加1: TextBoxA.TabIndex = customControlPosition; ButtonA.TabIndex = -1; ButtonB.TabIndex = -1;

我有一个复合控件,每个控件包含一个文本框(
TextBoxA
)和三个按钮(
ButtonA
ButtonB
,和
ButtonC
)。My page根据页面的状态动态生成n个这些CompositeControls

我已将
TextBoxA
的TabIndex设置为正值,在该控件的OnPreRender方法中,每个控件的值都会增加1:

TextBoxA.TabIndex = customControlPosition;
ButtonA.TabIndex = -1;
ButtonB.TabIndex = -1;
ButtonC.TabIndex = -1;
我已经通过调试验证了
customControlPosition
是否正确地为TabIndex属性指定了正的增量值(1、2、3、4等)

当前的行为是,每次按下
选项卡
键都会移动光标,以高亮显示CompositeControl中的每个按钮(TabIndex为-1,不应使用Tab键),然后继续将光标放入下一个CompositeControl的文本框中。 我想做的是让
选项卡
键直接将焦点从一个文本框移动到下一个CompositeControl中的文本框


是否有我遗漏的东西可以让我这样做?

尝试为您的按钮提供32767的
TabIndex
(最大值)。数字越大,控件的制表顺序越晚

我可以想象32767比你添加到一个页面上的控件数量要高得多

见此:


尝试为按钮指定32767的
TabIndex
(最大值)。数字越大,控件的制表顺序越晚

我可以想象32767比你添加到一个页面上的控件数量要高得多

见此:

我发现了这个问题

我使用的TextBox是一个自定义类,它是asp:TextBox的包装器,自定义类没有正确地将TabIndex值分配给asp:TextBox。

我发现了问题


我使用的TextBox是一个自定义类,它是asp:TextBox的包装器,自定义类没有正确地将TabIndex值分配给asp:TextBox。

我尝试为每个文本框分配32767的TabIndex,还尝试了
的唯一值(32700+customControlPosition)
但具有相同的行为。Tab键移动到每个控件内的按钮,而不是下一个控件的文本框。HTML输出没有显示tabindex值,这导致我出现错误。非常感谢。我尝试为每个文本框分配32767的TabIndex,还尝试了
(32700+customControlPosition)
的唯一值,但具有相同的行为。Tab键移动到每个控件内的按钮,而不是下一个控件的文本框。HTML输出没有显示tabindex值,这导致我出现错误。非常感谢。