2015-05-14 51 views
-2

如果我第一次輸入10位數字需要10位數字,但如果我清除textbox1使用退格鍵並再次輸入它只需要9位數字。它應該需要10位數字,因爲我已經設置textbox1.maxlength = 9意味着它應該計數10位數字(0到9)。上的按鍵文本框不能正常工作

private void textBox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
if (e.KeyChar != '\b' && textBox1.Text.Trim().Length > 9) 
     { 

      e.Handled = true; 
      MessageBox.Show("You can't enter more than ten digits..."); 
      textBox1.MaxLength = 9; 
     } 
} 
+0

如果你將它設置爲9它將數到10只,如果的MaxLength設定爲9,它會高達數僅9個數字。這意味着0到8 –

+0

'MaxLength'與計數數字無關。這是關於字符串的長度,你的問題不清楚 – Sayse

+2

很少有事情要注意:1)如果MaxLength是10之前,你鍵入10「數字」,那麼你會減少到9這樣的編輯後。 2)你沒有使用「數字」,但使用「代碼單元」。如果用戶輸入「è」(例如),它將消耗兩個System.Char(.NET字符串長度的measure_的_unit)。 3)KeyPress處理將與許多/大部分IME混淆。 –

回答

0

MaxLength是字符的字面量,即MaxLength爲9的索引範圍爲0-8。將MaxLength設置爲10.

+1

節省一些能量。養成閱讀評論的好習慣。 :) –

+2

這應該是一個評論,它不能解決問題,但我不知道他們的問題到底是什麼 – Sayse

+0

雅各布根據你一個MaxLength的9有從0- 8。而不是當我第一次輸入數字時需要10位數字 – Mahaveer

0

MaxLength用於計算字符串中字符的字面量,因此將MaxLength設置爲9,將計數爲0-8,因爲0計數爲文字字符。

你的解決辦法是的MaxLength設置爲10

+1

這只是抄襲雅各的回答 – Sayse

+0

@Sayse對不起,我當時在寫它,所以頁面沒有刷新,我看到他的回答 –

+0

它幾乎是一個單詞複製.. – Sayse