2017-09-07 5 views
2

私は、テキストボックスとコンボボックスを持つ小さなフォームを持っています。それぞれの独自の検証イベントは、ユーザーが移動するとボックスに応じて1または0何も入力せずに次のボックスに移動しますが、ユーザーが送信ボタンを直接クリックするだけですべての検証を実行したいと考えています。ボタンをクリックしてフォーム上のすべての検証イベントを実行

private void Validating_Zero(object sender, CancelEventArgs e) 
{ 
    if (((TextBox_Pro)sender).Text == "") 
    { 
     ((TextBox_Pro)sender).Text = "0"; 
    } 
} 

private void Validating_One(object sender, CancelEventArgs e) 
{ 
    if (((TextBox_Pro)sender).Text == "") 
    { 
     ((TextBox_Pro)sender).Text = "1"; 
    } 
} 

private void Start_Validating(object sender, CancelEventArgs e) 
{ 

} 
+0

イベントは「Validating _...」ハンドラがフックされていますか? 'LostFocus'? –

+0

テキストボックスのValidatingイベントにフックされるため、ユーザーがテキストボックスを離れて次のテキストボックスに移動しようとすると起動します。 – DeadlyTitan

答えて

1

フォームのValidateChildren()メソッドを呼び出すと、そのデータを検証するために、フォームの子コントロールのすべてを引き起こします。

また、妥当性検査の制約を受け入れるメソッドの別のオーバーロード、ValidateChildren(ValidationConstraints)を使用して、直接の子コントロール、有効なコントロール、タブストップコントロール、選択可能なコントロール、表示可能なコントロール、またはすべてのコントロールに限定することもできます。

ValidatingイベントとErrorプロバイダコントロールを使用して、エラーの概要を示す検証の例を見ても、Windowsフォームでの検証オプションの詳細を読んで、これらの投稿を見てみることを:

+0

本当に素晴らしい答えです、ありがとう、私は何か新しいことを学びました。私は余分になったので私の答えを削除します。 :) –

関連する問題