使用简单的方法......为了确保文本框中只包含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;
}
}
}
}
唯一其他可能的问题,当用户输入1位数以上,但小于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();
}
}
那么这有什么问题呢?你只想检查一下长度吗? – Sajeetharan
您应该使用以下模式的正则表达式:'“^ \ d {10} $”'或使用蒙版文本框而不是常规文本框。 –
Define无法正常工作 –