3 つのタブを含むダイアログを作成しました。タブ 1 と 2 のコントロールには、Validating()イベントを使用した検証があります。ユーザーは主にタブ 1 と 3 で作業し、必要がない限りタブ 2 を表示しません。タブ 1 と 2 のすべてのコントロールは、BindingSource オブジェクトにバインドされています。
私の観察では、タブが表示されるまで、バインドされたコントロールはタブ 2 で初期化されないようです。その結果、これらのコントロールには値がないため、フォーム全体の検証は失敗します。TextBox.Text の値は、初めて呼び出された""ときと、タブを表示した後です。Validating()somevalue
イベントからタブ 2 のコントロールを「事前初期化」しようとしましたLoad(たとえばTextBox.Value = 'test';、Validating() が呼び出される前に値がクリアされていることがわかりました。
BindingSource.Current の値を確認することを考えていましたが、この特定のソリューションには複数の落とし穴があり、特に BindingSource に未検証の値が含まれています。
次のいずれかを行うには、どのような手順を実行する必要がありますか?
- コントロールを表示する前に初期化する
- の適切な値 (コントロールまたは BindingSource) を取得する
Validation()