0

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

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

处理必填字段的实用方法,我使用标签字段来保​​存特定的错误消息,因为我没有将它用于其他任何事情,而且它既快速又简单。

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 回答