- ベストアンサー
Validated イベントについて
textboxのValidated について調べたのですがMSDNライブラリで検索したところ Validated コントロールの検証が終了すると発生します。 とあります。このコントロールの検証とは何ですか 具体的にわかりやすく教えてください 同様に Validating コントロールが検証を行っているときに発生します これについても具体的にわかりやすく教えてください。 質問をまとめると ValidatedとValidatingのイベントについてわかりやすく 教えて下さいということです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ここでいう検証というのは,コントロールの値がその項目に関して正しいかどうかの検証です。 例えば,電話番号を入力する欄に数字以外が入っていたら,そのコントロールの値は不正となります。 # 何が正しいかは,プログラマが決定します。 Validatingイベントは入力された内容を検証するためのイベントです。 検証結果が正しくなかった場合は, ・e.Cancelの値をTrueにする ・関連するErrorProviderに,検証に失敗した理由を設定する という処理を行います。 Validatedイベントは,Validatingイベントで検証が失敗しなかった場合に発生する後始末用のイベントです。 ・関連するErrorProviderから,値を除去する という処理を行います。 これらのイベントは,CausesValidationプロパティがTrueのコントロールで発生します。 入力の無いコントロールや,自由入力欄の様なコントロールでは,CausesValidationをFalseに設定することで,不要な検証をしないことができます。 MSDNのサンプルコードなども実行してみると,どういうものかがわかると思います。 個人的にはWinFormsといえどもデータバインディングで処理を行うため, Validating/Validatedイベントを使うことはないです。 データバインドさせるオブジェクトで当然検証を行いますが, だいたいは処理可能・不可能を意味するプロパティで検証結果を代替しています。 # IDataErrorInfoが必要なほどリッチなエラー情報を扱っていない……・。 References) MSDN: Control.Validating イベント (System.Windows.Forms) http://msdn.microsoft.com/ja-jp/library/system.windows.forms.control.validating.aspx MSDN: Windows フォームでのユーザー入力の検証 http://msdn.microsoft.com/ja-jp/library/ms229603.aspx Blog: エラーチェックの体系的な分類と実装パターン - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs http://blogs.msdn.com/b/nakama/archive/2009/09/29/9900568.aspx Blog: 双方向データバインドによる単体入力エラーチェック - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs http://blogs.msdn.com/b/nakama/archive/2009/02/26/9446324.aspx