if(textBox1.TextLength !=10)
{
MessageBox.Show("Wrong Telephone No Please check it again",
"ERROR",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
我尝试使用此代码验证c#中电话号码的文本框。我假设用户必须输入10个数字。但这不能正常工作。此代码允许数字和字符。如何验证只允许10位数字的文本框?只有数字。
答案 0 :(得分:1)
使用简单的方法...确保文本框包含正好10位数字且仅包含数字...然后一种可能的解决方案是捕获用户在文本框中输入的每个键。如果按下的键不是数字或退格键,则只需忽略此键。只能使用下面的文本框KeyPressed
事件来捕获数字键。下面的代码也只允许10位数。如果输入的数字超过10位,则会忽略它们。
private void txtPhoneNumber_KeyPress(object sender, KeyPressEventArgs e) {
if (!Char.IsDigit(e.KeyChar) && (e.KeyChar != (char)(Keys.Back))) {
e.Handled = true;
}
else {
// is a digit or backspace - ignore digits if length is alreay 10 - allow backspace
if (Char.IsDigit(e.KeyChar)) {
if (txtPhoneNumber.Text.Length > 9) {
e.Handled = true;
}
}
}
}
当用户输入一个或多个数字但不到10位数时,可能会出现唯一的其他可能问题,并尝试通过单击另一个控件来保留文本框。在这里,我们需要连接文本框Leave
事件。如果用户在输入正好十位数字之前尝试离开文本框,则下面的代码将提示用户电话号码不是十位数,然后将焦点BACK设置为电话号码文本框。用户可以清除文本并在必要时继续,但用户将无法输入九位或更少的数字并保留电话号码文本框。希望这会有所帮助。
private void txtPhoneNumber_Leave(object sender, EventArgs e) {
if ((txtPhoneNumber.Text.Length < 10) && (txtPhoneNumber.Text.Length > 0)) {
MessageBox.Show("Phone number must be 10 digits!");
txtPhoneNumber.Focus();
}
}
答案 1 :(得分:0)
使用正则表达式
log.segment.bytes