古詩詞大全網 - 成語查詢 - C#中如何限制Textbox控件中只能輸入數字,要能用退格的

C#中如何限制Textbox控件中只能輸入數字,要能用退格的

在Winform(C#)中要實現限制Textbox只能輸入數字,壹般的做法就是在按鍵事件中處理,判斷keychar的值。限制只能輸入數字,小數點,Backspace,del這幾個鍵。數字0~9所對應的keychar為48~57,小數點是46,Backspace是8。

? 拖壹個Textbox到窗體上,添加OnKeyPress事件,在事件寫判斷的代碼,只要判斷不是這些鍵,設置e.Handled的值為true,就可以屏蔽輸入。

?1.判斷是否為數字或Backspace,按下面這樣寫的話只能輸入數字和Backspace,所以還得給代碼添加些條件,還要能夠輸入小數點。

程序代碼

if ((kc < 48 || kc > 57) && kc != 8)

e.Handled = true

?2.輸入小數點。輸入的小數要符合數字的格式,類似9.9.9這樣的是不能夠輸入的。做法就是用float.TryParse來轉換Textbox中之前和之後的值,然後比較兩者的轉換結果。具體的代碼如下:

程序代碼

if (kc == 46) //小數點

{

if (txtMoney.Text.Length <= 0)

e.Handled = true; //小數點不能在第壹位

else

{

float f;

float oldf;

bool b1 = false, b2 = false;

b1 = float.TryParse(txtMoney.Text, out oldf);

b2 = float.TryParse(txtMoney.Text + e.KeyChar.ToString(), outf);

if (b2 == false)

{

if (b1 == true)

e.Handled = true;

else

e.Handled = false;

}

}

}