在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;
}
}
}