かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

Validation Application Block Integration WinForms

Validation Application BlockをWindows Formに統合するのは凄い簡単!!!

  1. Microsoft.Practices.EnterpriseLibrary.Validation.Integration.WinFormsを参照設定する。
  2. ツールボックスにValidationProviderコンポーネントを追加する。
  3. フォームに落とす。
  4. ErrorProviderもフォームに落とす
  5. ValidationProviderのErrorProviderプロパティを設定する
  6. ValidationProviderのSourceTypeプロパティを設定する
    1. SourceTypeプロパティには 型名, アセンブリ名の形で付ける(Hoge.Person, Hogeみたいに)
  7. フォーム上のコントロールにValidationProviderの〜っていうプロパティが追加されるので設定する
    1. PerformValidationをtrue
    2. SourcePropertyNameをSourceTypeに指定したクラスのプロパティ名にする
    3. ValidatedPropertyをコントロールのプロパティ名にする(大体Textになるとおもう)

多分これでOK

任意のタイミングで検証したいときは、FormのValidateChildrenを呼ぶとかすれば良さげ。
Validationエラーがあっても、コントロールからフォーカス移動できるようにするには、FormのAutoValidateプロパティをEnableAllowFocusChangeにすると良さげ。