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());
}
}
你可以看看我在这里写的一个模板:它在按钮内为按钮代码外的文本框创建一个验证方法。并在单击按钮时调用此方法