アプリ版:「スタンプのみでお礼する」機能のリリースについて

textboxのValidated について調べたのですがMSDNライブラリで検索したところ
Validated コントロールの検証が終了すると発生します。
とあります。このコントロールの検証とは何ですか
具体的にわかりやすく教えてください

同様に
Validating コントロールが検証を行っているときに発生します
これについても具体的にわかりやすく教えてください。

質問をまとめると
ValidatedとValidatingのイベントについてわかりやすく
教えて下さいということです。

A 回答 (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.w …
MSDN: Windows フォームでのユーザー入力の検証
http://msdn.microsoft.com/ja-jp/library/ms229603 …
Blog: エラーチェックの体系的な分類と実装パターン - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs
http://blogs.msdn.com/b/nakama/archive/2009/09/2 …
Blog: 双方向データバインドによる単体入力エラーチェック - とあるコンサルタントのつぶやき - Site Home - MSDN Blogs
http://blogs.msdn.com/b/nakama/archive/2009/02/2 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています