C# 如何捕获详细信息,然后进行验证?

C# 如何捕获详细信息,然后进行验证?,c#,wpf,validation,C#,Wpf,Validation,我有几个文本框,我希望用户首先将详细信息捕获到文本框中,然后当他/她单击“保存”按钮时,验证必须按顺序开始。请参阅下面的代码,我不确定我的逻辑。请帮帮我 if (txtFullNames.Text.Length == 0) { Errormessage.Text = "Please enter your fullname"; txtFullNames.Focus(); //txtFullNam

我有几个文本框,我希望用户首先将详细信息捕获到文本框中,然后当他/她单击“保存”按钮时,验证必须按顺序开始。请参阅下面的代码,我不确定我的逻辑。请帮帮我

       if (txtFullNames.Text.Length == 0)
        {
            Errormessage.Text = "Please enter your fullname";
            txtFullNames.Focus();

            //txtFullNames.BorderBrush = Brushes.Red;  
        }
        else if(!Regex.IsMatch(txtFullNames.Text, @"^[a-zA-Z]"))
        {
            Errormessage.Text = "Fullname must not contain a number";
        }
        else if (txtSurname.Text.Length == 0)
        {
            Errormessage.Text = "Please enter your Surname";
            txtSurname.Focus();
        }
        else if (!Regex.IsMatch(txtSurname.Text, @"^[a-zA-Z]"))
        {
            Errormessage.Text = "Surname must not contain a number";
        }
        else if (txtEmail.Text.Length == 0)
        {
            Errormessage.Text = "Please enter your Email Address";
            txtEmail.Focus();
        }
        else if (!Regex.IsMatch(txtEmail.Text, @"^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*             [a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$"))
        {
            Errormessage.Text = "Please enter you valid email address";
            txtEmail.Focus();
        }
        else if (cboGender.SelectedIndex == 0)
        {
            Errormessage.Text = "Please select your Gender";
            cboGender.Focus();
        }
        else if (cboCompany.SelectedIndex == 0)
        {
            Errormessage.Text = "Please select your Company";
            cboCompany.Focus();
        }
        else if (txtUserName.Text.Length == 0)
        {
            Errormessage.Text = "Please enter your Username";
            txtUserName.Focus();
        }
        else if (txtPassword.Password.Length == 0)
        {
            Errormessage.Text = "Please enter your password";
            txtPassword.Focus();
        }
        else if (txtConfirmPassword.Password.Length == 0)
        {
            Errormessage.Text = "Please confirm your password";
            txtConfirmPassword.Focus();
        }
        else if (txtPassword.Password != txtConfirmPassword.Password)
        {
            Errormessage.Text = "Both password must match";
        }
        #endregion
        else
        {

            SqlConnection oConnection = new SqlConnection(_ConnectionString);

将验证放在方法中,并在单击“保存”按钮时调用此方法

范例

public void validateFields(){
// check your fields
}

private void validatetButton_Click(object sender, EventArgs e)
{
       validateFields();
}    

听起来你想要的是

这里有一个例子

 class Example_Validation : ValidationRule
 {
    /// <summary>
    /// Example of a simple validation, that can have different validation error contents.
    /// </summary>
    /// <param name="value">A string in this case</param>
    /// <param name="cultureInfo"></param>
    /// <returns></returns>
    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        var str = value as string;      // Convert to our string
        var sb = new StringBuilder();   // For the error messages
        var valid = true;               // Rather obvious

        if (String.IsNullOrWhiteSpace(str))
        {
            valid = false;
            sb.AppendLine("Null or white space is not valid.");
        }
        else if (str.Length < 5)
        {
            valid = false;
            sb.AppendLine("String too short (less than 5).");
        }

        return new ValidationResult(valid, sb.ToString());
    }
}
类示例\u验证:ValidationRule
{
/// 
///一个简单验证的示例,可以有不同的验证错误内容。
/// 
///本例中的字符串
/// 
/// 
公共覆盖验证结果验证(对象值,CultureInfo CultureInfo)
{
var str=value as string;//转换为我们的字符串
var sb=new StringBuilder();//获取错误消息
var valid=true;//非常明显
if(String.IsNullOrWhiteSpace(str))
{
有效=错误;
sb.AppendLine(“Null或空格无效”);
}
否则如果(str.Length<5)
{
有效=错误;
sb.附录(“字符串太短(小于5)。”;
}
返回新的ValidationResult(valid,sb.ToString());
}
}

你可以看看我在这里写的一个模板:

它在按钮内为按钮代码外的文本框创建一个验证方法。并在单击按钮时调用此方法