20

内に がTextboxネストされているとしTabControlます。

フォームが読み込まれたら、それにフォーカスしたいと思いTextboxます (デフォルトでは、フォーカスは に設定されていますTabControl)。

textbox1.focus()フォームのイベントで呼び出すだけでLoadは機能しないようです。

私は次のことを行うことでそれを集中させることができました:

 private void frmMainLoad(object sender, EventArgs e)
 {
     foreach (TabPage tab in this.tabControl1.TabPages) 
     {
         this.tabControl1.SelectedTab = tab;
     }
 }

私の質問は:

これを行うよりエレガントな方法はありますか?

4

6 に答える 6

47

以下が解決策です。

private void frmMainLoad(object sender, EventArgs e)
{
    ActiveControl = textBox1;
}

しかし、より良い質問はその理由です...その答えが何であるかは完全にはわかりません。

編集:フォームとTabControlの両方がコンテナであるという事実と関係があると思われますが、よくわかりません。

于 2008-09-07T19:47:36.060 に答える
15

Form_Shown()イベントに入れてみてください。コンテナー内にあるため、Form_Load や Form() コンストラクターを入れても機能しません。

于 2009-03-11T14:50:06.530 に答える
4

textbox1.Select()の代わりに使用してみてくださいtextbox1.Focus()。これは私を数回助けました。

于 2010-03-01T11:11:25.290 に答える
1

別のユーザー コントロール内にユーザー コントロールがありました。textbox1.Select() は機能しましたが、 textbox1.Focus() は機能しませんでした。

Tabstop を false、textbox1.Focus()、TabStop true に設定することもできます。

于 2011-03-30T14:07:28.383 に答える