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()