使用簡單的方法......爲了確保文本框中只包含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無法正常工作 –