2016-12-18 13 views
0

テキストボックスにキャレットがある間にボタンにフォーカスを設定し、テキストボックスにデータを入力することができます。しかし、ユーザーがEnterキーを押すと、ボタンを押すとシミュレーションされます。WinFormでテキストボックスとボタンのフォーカスを同時に設定する方法

私は現在、この問題を解決するために、onKeyDownイベントを処理し、エンターキーをチェックすることによって回避しています。しかし、ボタンに焦点を当てているボタンの周りに青い枠線がないので、ユーザーがこれを理解する手がかりがない。ここで

が、私はフォーカスが上にあるとき(ユーザーがテキストボックスにテキストを入力することができます実装したいものの一例である:
Dialog Box with focus on button and caret in textbox

私はGoogleとのStackOverflowで検索しようとしていますが、関連するすべての結果を見つけることができませんでした。

答えて

1

これは、基本的なWindowsの原理である。これは、2つのコントロール(ウィンドウ)を持ってすることはできませんが、同時に焦点を当てた。

だから、フォーカスがテキストボックス内でなければなりません。しかし、あなたはで必要な視覚的表示を得ることができますOKボタンをとして設定するフォームの(キャンセルボタンをCancelButtonと設定することもできます)。フォームのコンストラクタ、負荷イベントやデザイナーを使用して

this.AcceptButton = okButton; 

KeyDownイベントを処理する必要はありません - とすぐにテキストボックスが複数行ではないとして、それは意志の内側にフォーカスがある間、Enterを押しますOKボタンのクリックを生成します。 ESCを押すと、CancelButtonと同じボタンが適用されます。

関連する問題