前のトピック: ダイアログ ボックスの終了次のトピック: モーダル ダイアログ ボックスおよびモードレス ダイアログ ボックス


フォーカス イベント

特定の状況で、GainFocus イベントおよび LoseFocus イベントの ASP.NET での動作が、Web 生成クライアントおよび GUI クライアントでの動作と若干異なる場合があります。これは、これらの環境のアーキテクチャの違いによるものです。 この動作の相違がないと、ASP.NET アプリケーションが無限ループに入る可能性があります。

たとえば、ページ上の First コントロールに GainFocus イベントと LoseFocus イベントが関連付けられており、ページ上の他のいかなるコントロールでもフォーカスが取得されない場所(他のコントロールが存在しないウィンドウやブラウザのアドレス ボックスなど)でマウスがクリックされると、LoseFocus イベントが起動されます。 ページで再作図が行われると、フォーカスが First コントロールに戻ります。 GainFocus イベントは起動しません(元のフォーカスが First コントロールにあり、さらにこれが、次にフォーカスを取得するコントロールでもあるため)。

別のマウス クリックが発生すると LoseFocus イベントは発生しません(LoseFocus が最後に処理されたイベントなので、重複イベントになるため)。 この場合、アドレス ボックス内でマウスをクリックすると、フォーカスはアドレス ボックス内にとどまります。イベント処理がサーバに送信されないため、ウィンドウを再作図してフォーカスを First コントロールにリセットする理由がないからです。