10

この MSDN ページ(またはこの件に関する関連ページ) を参照すると、次のように述べられています。

キーボードを使用してフォーカスを変更すると、次の順序でフォーカス イベントが発生します。

  1. 入る
  2. フォーカスを得た
  3. 離れる
  4. 検証中
  5. 検証済み
  6. ロストフォーカス

ただし、マウスを使用してイベントを発生させると、順序が変わります!

マウスを使用するか、Focus メソッドを呼び出してフォーカスを変更すると、次の順序でフォーカス イベントが発生します。

  1. 入る
  2. フォーカスを得た
  3. ロストフォーカス
  4. 離れる
  5. 検証中
  6. 検証済み

これにより、一連のイベントがまったく異なるものになるのではないでしょうか。ここでの私の解釈は、キーボード チェーンがすべてが正常に動作していることを確認してから、LostFocusイベントを発生させるというものです。それでも、マウスイベントは、何らかの理由で検証する前にそれを発生させるようです。何故ですか?

4

2 に答える 2

1

上記のように:

あなたがリンクしたMSDNの記事では、十分に強い言葉遣いをしましたか? LostFocus は使用しないでください。Leave のみを使用してください。

検証を適用するには、キーボード ナビゲーションをこの順序にする必要があります。これらは、入力文字列を検証するためにそれらに反応することを目的としています。

于 2014-09-04T20:01:14.417 に答える