0

TextBoxAそれぞれがTextBox( )と3つのボタン(ButtonA、、、 )を含むCompositeControlがありButtonBますButtonC。私のページは、ページの状態に応じて、これらのCompositeControlのn個を動的に生成します。

TextBoxAのTabIndexを、そのコントロールのOnPreRenderメソッド中にコントロールごとに1ずつ増加する正の値に設定しました。

TextBoxA.TabIndex = customControlPosition;
ButtonA.TabIndex = -1;
ButtonB.TabIndex = -1;
ButtonC.TabIndex = -1;

customControlPositionTabIndexプロパティに正の増分値(1、2、3、4など)を正しく割り当てているデバッグを通じて検証しました。

現在の動作では、Tabキーを押すたびにカーソルが移動して、CompositeControl内の各ボタン(TabIndexは-1であり、タブで移動しないでください)が強調表示されてから、次のCompositeControlにカーソルが置かれます。テキストボックス。私がやりたいのは、Tabキーでフォーカスを1つのTextBoxから次のCompositeControlのTextBoxに直接移動することです。

これを可能にする何かが欠けていますか?

4

2 に答える 2

2

問題を見つけました。

私が使用していたTextBoxは、asp:TextBoxのラッパーであるカスタムクラスであり、カスタムクラスはTabIndex値をasp:TextBoxに正しく割り当てていませんでした。

于 2013-03-19T15:36:09.517 に答える
1

ボタンTabIndexに32767(可能な最大値)を与えてみてください。数値が大きいほど、コントロールのタブ順は遅くなります。

32767は、ページに追加するコントロールの数よりもはるかに多いと思いますか?

これを参照してください:

タブインデックス

于 2013-03-19T12:38:53.397 に答える