2013-06-04 12 views
9

Windowsフォームアプリケーションに「検索」テキストボックスコントロールをフォーカスしようとしています。このテキストボックスは、ユーザーコントロールの内部にあり、Windowsフォームの内側にあるパネル内にあります(重要な場合)。Windowsフォームのコントロールにフォーカスを強制する方法

// 1 
this.ActiveControl = myTextBox; 

// 2 
myTextBox.Focus(); 

// 3 
myTextBox.Select(); 

どちらもそれらが動作しているように: 私は見つけることができる3つの方法を試してみました。例えば、最初のコントロールを試してみると、アクティブコントロールは実際にmyTextBoxに設定されていますが、キーボードで何かを書き込もうとすると、テキストボックスは受け入れられず、フォーカスを取得するためにテキストボックス内を最初にクリックしなければなりません。これはすべてのメソッドと同じです。 何か不足していますか?

答えて

16

[OK]を、最終的に答えを見つけた:私は私のテキストボックスがフォーム内でパネルの内側にあるユーザーコントロール内で言ったように

。 ユーザーコントロールが必要なときはパネルに追加します。私の上のフォームに :

私のユーザーコントロールで
panel.Controls.Add(myUserControl); 
myUserControl.Focus(); 

、その後:私のテキストボックスにフォーカスを取得するには、私が最初にこのような何かので、私のユーザーコントロールを集中する必要がある場合は、その

myTextBox.Select(); 

注I使用:myTextBox.Focus()は動作しませんでした(理由はわかりません)。また、myUserControl.Focus()の代わりにmyUserControl.Select()を使用すると、どちらも機能しません。

これは機能する唯一の組み合わせのようです。

関連する問題