在Winform(C#)中要實現限制Textbox只能輸入數字,一般的做法就是在按鍵事件中處理,判斷keychar的值。限制只能輸入數字,小數點,Backspace,del這幾個鍵。數字0~9所對應的keychar為48~57,小數點是46,Backspace是8。
拖一個Textbox到窗體上,新增OnKeyPress事件,在事件寫判斷的程式碼,只要判斷不是這些鍵,設定e.Handled的值為true,就可以遮蔽輸入。
1.判斷是否為數字或Backspace,按下面這樣寫的話只能輸入數字和Backspace,所以還得給程式碼新增些條件,還要能夠輸入小數點。
程式程式碼
if ((kc 57) && kc != 8)
e.Handled = true
2.輸入小數點。輸入的小數要符合數字的格式,類似9.9.9這樣的是不能夠輸入的。做法就是用float.TryParse來轉換Textbox中之前和之後的值,然後比較兩者的轉換結果。具體的程式碼如下:
if (kc == 46) //小數點
{
if (txtMoney.Text.Length
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;
e.Handled = false;
}
在Winform(C#)中要實現限制Textbox只能輸入數字,一般的做法就是在按鍵事件中處理,判斷keychar的值。限制只能輸入數字,小數點,Backspace,del這幾個鍵。數字0~9所對應的keychar為48~57,小數點是46,Backspace是8。
拖一個Textbox到窗體上,新增OnKeyPress事件,在事件寫判斷的程式碼,只要判斷不是這些鍵,設定e.Handled的值為true,就可以遮蔽輸入。
1.判斷是否為數字或Backspace,按下面這樣寫的話只能輸入數字和Backspace,所以還得給程式碼新增些條件,還要能夠輸入小數點。
程式程式碼
if ((kc 57) && kc != 8)
e.Handled = true
2.輸入小數點。輸入的小數要符合數字的格式,類似9.9.9這樣的是不能夠輸入的。做法就是用float.TryParse來轉換Textbox中之前和之後的值,然後比較兩者的轉換結果。具體的程式碼如下:
程式程式碼
if (kc == 46) //小數點
{
if (txtMoney.Text.Length
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;
}
}
}