2009-11-18 14 views
7

私はいくつかのコントロールとErrorProviderを持つwinformsを持っています。コントロールのValidatingイベントは、データを検証し、エラーがあればErrorProviderに報告します。この作業は、ユーザーが間違った情報をコントロールに入力してコントロールから離れるときに役立ちます。コントロールを強制的に検証する方法

ただし、ユーザーがデータを入力せずにオンをクリックすると、検証は行われません。ユーザーが[OK]をクリックしたときに、すべてのコントロールの検証を強制する方法はありますか?いくつかの検証が失敗した場合、OKイベントをどのように知っていてキャンセルするのですか?

答えて

14

Form.ValidateChildrenを使用すると、検証をサポートしている限り、フォーム上のすべてのコントロールの検証を強制できます。 CausesValidationをFalseに設定したコントロールはValidatingイベントを発生させないため、ValidateChildrenによって検証されません。

+11

1つのコンボボックスの検証はどうですか? Form.ValidateChildrenは、検証の原因となる多数のコントロールを持つフォームで使用すると効率の問題が発生します。 – Rob

3

ValidateまたはValidateChildrenのいずれかの祖先ContainerControlを使用することもできます。Validateは、最高のパフォーマンスを発揮します。

FormContainerControlです。

関連する問題