メイン フォームがユーザー コントロールのサブコントロールで発生するイベントをインターセプトできる方法はありますか?
アプリケーションのメイン フォームにカスタム ユーザー コントロールが埋め込まれています。コントロールには、データを操作するさまざまなサブコントロールが含まれており、それ自体がメイン フォーム上の他のコントロールによって表示されます。私が望むのは、ユーザーがサブコントロールを変更したときに何らかの方法でメイン フォームに通知できれば、データと対応する表示を別の場所で更新できるということです。
今、私は浮気をしています。サブコントロールのフォーカス離脱イベントに接続されたデリゲートがあります。このデリゲートは、他の場所では使用していないユーザー コントロールのプロパティを変更します (この原因では、CausesValidation)。次に、ユーザー コントロールの CausesValidation プロパティが変更されたときのためにメイン フォームにデリゲートを定義し、アプリにデータの更新と表示を指示します。
ユーザーが他の操作を実行できるようにする前に、ユーザー コントロールのフィールドを検証する必要があるため、フォーカスがユーザー コントロールから離れたときにデリゲートを設定しているため、問題が発生します。ただし、ユーザーがサブコントロールを切り替えているだけの場合は、編集が完了していない可能性があるため、検証したくありません。
基本的に、ユーザーがサブコントロールを切り替えたり、ユーザーコントロールを離れたりしたときにデータを更新したいのですが、検証はしません。ユーザーがコントロールを離れたら、更新して検証したいと思います。現在、ユーザー コントロールを離れると、検証が 2 回発生します。