4

カスタム子フォームを呼び出すフォームがあります。子フォームは基本的に、ユーザー データを取得するポップアップ ボックスです。

子フォームから返された情報を親フォームで処理する必要があります。

問題は、親フォームが子フォームを呼び出しており、応答を待っていないことです。

理想的には、子フォームが DialogResult を返すようにしたいと思います。機能的には、これは何が起こっているのか明確であり (特に、ユーザーが子コントロールをキャンセルするオプションを持っているため)、親を強制的に待機させる簡単な方法のように思えます。私はこれを行う方法を理解していません。

二次的な問題は、親コントロールが childDialog.Show() イベントを超えて進み、子コントロールの情報を処理しようとすることです。まだ変更されていないもの。
childDialog.UserClickedOK など、子コントロールのパブリック値を使用して条件を設定しても、デフォルト値がまだ有効であるため、何の役にも立ちません。

私は何を見落としていますか?

みんな、ありがとう!:)

4

1 に答える 1

6

Show の代わりに ShowDialog を使用して、フォームをモーダルに表示する必要があります。子フォーム内で、DialogResult を、以前に発生したユーザー インタラクションを考慮して最も意味のあるものに設定します。

于 2010-09-12T01:15:23.743 に答える