1

テキスト ボックスとラベルが存在する WPF フォームがあります。テキスト ボックスの "Lost Focus" イベントで、いくつかの検証を行っています。検証が失敗した場合は、ラベルにエラー メッセージを表示し、フォーカスを元に戻します。テキストボックス。問題は、テキスト bos にフォーカスを戻してから、"Lost_Focus イベントが再び発生し、検証関数が再帰的に呼び出され、"StackOverflow" 例外が発生することです。

  An unhandled exception of type 'System.StackOverflowException' occurred in 
  mscorlib.dll

テキストボックスにカーソル/フォーカスを置く行にコメントすると、すべてうまくいきます。しかし、検証が失敗した場合、カーソルをテキストボックスに入れる必要があります

これを取り除く方法はありますか?

4

1 に答える 1

0

代わりに TextBox.PreviewLostKeyboardFocus を処理するのはどうですか? また、イベント ハンドラーでは、検証が失敗するたびに "e.Handled = true" を設定するだけですか?

于 2010-09-08T14:52:08.510 に答える