2016-05-18 4 views
0

私はカスタムのTextBoxコントロールを持っています。このコントロールには、ウィンドウのデフォルトのTextBoxコントロールがあります。タブが押されたときに子コントロールがあるため、カーソルは子コントロールに直接フォーカスしません。 Tabキーを2回押す必要があります。最初のタブは親に、2番目のタブは子に移動します。 1つのTabキーでどのように行うことができますか?タブを押したときに子コントロールをフォーカスする方法は?

カスタムテキストボックスには、次のとおりです。

class MyTextBox : Control 
    { 
     TextBox innerBox; 
     public MyTextBox() 
     { 
      //..... 
      innerBox = new TextBox(); 
      Controls.Add(innerBox); 
      innerBox.Parent = this; 
      innerBox.TabIndex = this.TabIndex; 
      //..... 
     } 
     //..... 
    } 
+2

変更に似た子コントロールの何かのためのマークアップになるだろう。またはTextBoxに変更し、「インボックス」を一切追加しないでください。 –

+0

ありがとう@HansPassant、それは働いた。 'UserControl'がなぜこの問題を解決するのか説明してもらえますか? –

+2

これは子コントロールのコンテナであるように設計されていますが、Controlクラスはそうではありません。どのようにそれを行うか見るには、[UserControl.WndProc()メソッド](http://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/UserControl.cs,f9a8bf95a2d28b6e)を見てください。 –

答えて

0

あなたはtabindex属性を使用し、tabindex="1"として子を指定することができます。これは、ユーザーコントロールの基本クラス

<input type="textbox" runat="server" id="TB_id" tabindex="1"></input>

+0

私は質問にタグミスがあることに気付きました。申し訳ありません。実際には、それはwinformの質問です –

関連する問題