0

C# で記述されたウィンドウがあり、データをデータベースに保存する前に、各コントロール (ドロップダウン、テキスト ボックスなど) のデータが null でないことを確認したいと考えていました。アプリケーションには、このような複数のフォームがあります。どうすればそれを行うことができますか?私はブール関数を作成すると考えています。

4

2 に答える 2

2

フォーム内のコントロールをループしてコントロール値をチェックする簡単なメソッドを作成できます。

    private bool CheckControls()
    {
        foreach (Control ctrl in this.Controls)
        {
           //Write the code to check whether the control value is null
            //case: Testbox return true;
            //case: Dropdown return true;
            //case: Listbox return true;
            //..etc

        }
        return false;
    }
于 2013-05-15T11:12:07.307 に答える
1

ErrorProvider を使用します。エラー プロバイダーをフォームに配置すると、1 回の呼び出しですべてのコントロールを処理できるユーティリティ関数を作成できます。テキストボックスに何かが入力されたことを確認するために次のコードを使用しました。このメソッドを拡張できます。

必要なフィールドを処理するユーティリティ メソッド。タグ フィールドを使用して特定のエラー メッセージを保持しました。これは他の目的で使用していなかったので、迅速かつ簡単でした。

public static void TextBoxRequired_Validating(object sender, CancelEventArgs e, ErrorProvider errorProvider)
{
    var textbox = (TextBox)sender;
    var valid = !String.IsNullOrWhiteSpace(textbox.Text);
    e.Cancel = !valid;
    errorProvider.SetError(textbox, (valid ? string.Empty : textbox.Tag.ToString()));
}

ユーティリティ メソッドを呼び出すイベント ハンドラ

void txtName_Validating(object sender, CancelEventArgs e)
{
    ControlUtility.TextBoxRequired_Validating(sender, e, errorProvider1);
}
于 2013-05-14T20:05:28.310 に答える