如何验证Windows窗体

时间:2014-04-29 15:08:38

标签: c# .net

如何验证注册表格?目前,我正在开发一个项目,它有许多文本框,几个单选按钮和复选框,我需要验证每个文本框中少数文本框是必需的,很少可以为空,但如果用户在这些空文本框上输入文本,它应验证这些输入。目前,我正在使用带有嵌套if else语句的正则表达式,但它非常耗时,而且我对如此多的if else语句感到困惑。

if (textBox1.Text != string.Empty) {
    Regex emp1=new Regex("^[a-z-A-Z]+$");
    if(emp1.IsMatch(textBox1.Text)) {
        if (textBox2.Text != string.Empty) {
            Regex emp2 = new Regex("^[0-9]+$");
            if(emp2.IsMatch(textBox2.Text)) {
                int a = int.Parse(textBox2.Text);
            else {
                MessageBox.Show("characters not allowed");
                textBox2.Focus();
            }
        } else {
            MessageBox.Show("pls enter age");
        }                       
    } else {
        MessageBox.Show("no. are not allowed ");
    }
} else {
    MessageBox.Show("pls enter name");
    textBox1.Focus();
}

2 个答案:

答案 0 :(得分:4)

每次检查后都可以使用退货。

if (string.IsNullOrEmpty(textBox1.Text))
{
    MessageBox.Show("pls enter name");
    textBox1.Focus();
    return;
}

Regex emp1=new Regex("^[a-z-A-Z]+$");
if (!emp1.IsMatch(textBox1.Text))
{
    MessageBox.Show("no. are not allowed ");
    return;
}

如果您不想将回复传播到代码中,可以使用else if。对于此类检查,我个人赞成在消息之后立即使用退货。

答案 1 :(得分:3)

您可以使用else if语句执行此操作:

string message = null;
TextBox focusMe = null;

if (failure1)
{
    message = "message1";
}
else if (failure2)
{
    message = "message2";
}
else if (failure3)
{
    message = "message3";
}

if (!string.IsNullOrEmpty(message))
{
    MessageBox.Show(message);

    if (focusMe != null) focusMe.Focus();
}

我是单return的粉丝,所以这是我喜欢的风格。此外,您可以通过将else if替换为if并将错误添加到列表中来轻松修改此问题以检查多种错误情况。