我正在创建一个C#Windows注册表单,这意味着用户必须输入他的用户名,密码和其他详细信息才能注册一个帐户。当按钮被点击时,WinForm验证不会被验证
所以我使用两个“ErrorProviders”事件的“验证”事件为每个文本框验证文本框(一个用于错误,一个用于确定),以确保用户名长度至少为5个字符,密码至少包含1大写,1小写等,电子邮件格式是正确的......你明白了。
以下是我的用户名文本框中输入验证码之一:
private void usrTxtBox_Validating(object sender, CancelEventArgs e)
{
if (string.IsNullOrEmpty(usrTxtBox.Text))
{
usrOk.Clear();
usrError.SetError(usrTxtBox, "field required!");
count++;
}
else if (!Regex.IsMatch(usrTxtBox.Text, "</REGEX PATTERN/>"))
{
usrOk.Clear();
usrError.SetError(usrTxtBox, "</ERROR MESSAGE/>");
count++;
}
else
{
usrError.Clear();
usrOk.SetError(usrTxtBox, "good to go");
count = 0;
}
}
即重复每一个文本框(我的用户名,密码,姓名,电子邮件地址和联系电话,每一个不同的正则表达式
因此,正如大家可能知道的那样,“验证”事件只在文本框被“聚焦”然后“失去焦点”时才会生效,因此,当我通过正确输入所需的值单击“注册”对于第一个文本框,计数将等于0,因此,不会有错误。注册按钮的代码点击下面:
private void rgstr_Click(object sender, EventArgs e)
{
if (ValidateChildren())
{
if (count != 0)
{
MessageBox.Show("check again");
}
else if (count == 0)
{
MessageBox.Show("gd to go");
}
}
}
我尝试使用ValidateChildren强制验证,但它不起作用。有没有解决方案?还是有一个替代解决方案来验证我的文本框?
欢迎堆栈溢出!我编辑过你的标题。请参阅“应该在标题中是否包含”标签?“,其中的共识是”不,他们不应该“。 http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles –
啊,对不起,我会在将来的问题中留意。谢谢 – winston
http://stackoverflow.com/questions/8915151/c-sharp-validating-input-for-textbox-on-winforms? 您确定取消该活动无效吗? e.Cancel()?它可能会验证正确,但对此没有任何反应。 问题是什么?确认错误的输入或标记一切不正确? – wondra