3

これはちょっと説明が難しいです。

いくつかのテキストボックスを持つユーザーコントロールがあります。同じウィンドウのこのユーザーコントロールのすぐ上にメニューもあります。タブを離すたびに、テキストボックスで LostFocus が正しく起動します。これが私の望みです。奇妙なことに、ウィンドウの上部にある [メニュー] ボタンをクリックしても、LostFocus イベントがテキスト ボックスで発生しません。私のメニューが最後にフォーカスを持っていたコントロールで LostFocus を適切に起動できるようにするエレガントな方法はありますか?

また、BindingExpressions を更新する必要がないようにしたいと考えています。そうしないと、N 個のテキストボックスに対してこれを行う可能性が高くなりますが、これは望ましくありません。

これを達成するのが難しすぎるとは想像できません..これがどのように機能しないのか理解できません.他のほとんどの状況では、LostFocusは常に起動します.

何か案は?ありがとうございました。

4

1 に答える 1

0

メニューもWPFですか、それともWinforms / UnManagedですか?2つのうちのいずれかである場合、フォーカス喪失イベントは発生しません。これは、メニューから保存または他のデータ機能が実行されている回数だけ、WPFコントロールで大混乱を引き起こす可能性があります。これに対抗するために、私はこれと戦うために複数の方法を実装しなければなりませんでした。最も簡単な方法は、ユーザーコントロール自体にマウスの脱退イベントを実装し、コードで手動で必要なアクションを実行することでした。

于 2011-08-23T03:44:17.223 に答える