我正在使用昵称(昵称)。用户注册时,必须输入相同的昵称,它不能包含符号(下划线除外),只能包含数字和字母。我为此使用用户名KeyPress事件TextBox:private bool Handled = false;private void Username_KeyPress(object sender, KeyPressEventArgs e){ if (Char.IsLetterOrDigit(e.KeyChar)) this.Handled = false; else { if (e.KeyChar == '\b') this.Handled = false; //Backspace key else { if (e.KeyChar == '_' && !((TextBox)sender).Text.Contains("_") && ((TextBox)sender).Text.Length > 0) this.Handled = false; else this.Handled = true; } } e.Handled = Handled;}这段代码可防止符号(与“ _”不同),内容以“ _”开头并使用了多个下划线“ H_E_L_L_O”,但它们需要防止在下划线使用结尾,我的意思是:允许:Hell_o预防:Hello_这可能吗?
1 回答
jeck猫
TA贡献1909条经验 获得超7个赞
除非您能读懂用户的想法,否则您将无法执行此操作:)毕竟,用户可能希望Hell_o像您的示例中那样输入内容,但要键入他们首先需要输入“ Hell_”,这样您才能在此时停止输入。您可能要做的最好的事情是处理UserName控件上的“ Validating”事件。
private void UserName_Validating(object sender, CancelEventArgs e) {
errorProvider1.SetError(UserName, "");
if (UserName.Text.EndsWith("_")) {
errorProvider1.SetError(UserName, "Stuff is wrong");
}
}
然后在“注册”按钮中单击或执行其他操作,检查该控件(或您关心的任何控件)是否错误。
- 1 回答
- 0 关注
- 165 浏览
添加回答
举报
0/150
提交
取消