验证Windows窗体上的控件

时间:2013-05-14 19:49:37

标签: c# sql windows-forms-designer

我有一个用C#编写的窗口,想要在将数据保存到数据库之前验证每个控件(下拉列表,文本框等)中的数据是否为空。我在应用程序中有多个这样的表单。我该怎么做呢?我在想我创建布尔函数。

2 个答案:

答案 0 :(得分: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;
    }

答案 1 :(得分:1)

使用ErrorProvider。将错误提供程序放在表单上,​​然后您就可以拥有一个可以通过一次调用处理所有控件的实用程序函数。我使用以下代码确保在文本框中输入内容,您可以扩展此方法。

处理必填字段的实用程序方法,我使用标记字段来保存特定的错误消息,因为我没有将其用于任何其他内容,而且快速而简单。

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);
}