15

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

// 1
this.ActiveControl = myTextBox;

// 2
myTextBox.Focus();

// 3
myTextBox.Select();

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

4

2 に答える 2

24

わかりました、最終的に答えを見つけました:

私が言ったように、私のテキストボックスは、フォーム内にあるパネル内にあるユーザーコントロール内にあります。ユーザー コントロールが必要な場合は、それをパネルに追加します。テキストボックスにフォーカスするには、まずユーザー コントロールにフォーカスする必要があるので、次のようにします。

panel.Controls.Add(myUserControl);
myUserControl.Focus();

そして、私のユーザーコントロールで:

myTextBox.Select();

myTextBox.Focus() を使用した場合、機能しないことに注意してください(理由はわかりません)。また、 myUserControl.Focus() の代わりに myUserControl.Select() を使用した場合も機能しません。

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

于 2013-06-04T14:49:04.603 に答える
1

次のロジック ステップを実行して、コントロールをフォーカスに設定できます。

your_control.Select();
your_control.Focus();

楽しみ!:)

于 2019-08-07T02:21:39.023 に答える