在(C#)中,为了限制只能输入数字,一般的做法是对按键事件中的值进行处理和判断。 只能输入数字、小数点和del键。 数字0~9对应48~57,小数点为46,即8。
拖一个到窗体上,添加一个事件,在事件中写入判断代码。 只要判断不是这些键并设置e的值即可。 为 true 时,可以阻止输入。
1.判断是否为数字或。 如果这样写的话,只能输入数字和,所以你得在代码中添加一些条件,能够输入小数点。
2. 输入小数点。 输入的小数必须符合数字的格式,如不能输入9.9.9。 方法是使用浮动。 将前后的值进行转换,然后比较两者的转换结果。
1.C#代码
存在
private void textBox1_KeyPress(object sender, KeyPressEventArgs e){//数字0~9所对应的keychar为48~57,小数点是46,Backspace是8e.Handled = true;//输入0-9和Backspace del 有效if ((e.KeyChar >= 47 && e.KeyChar <= 58) || e.KeyChar == 8){e.Handled = false;}if (e.KeyChar == 46) //小数点 {if (textBox1.Text.Length <= 0)e.Handled = true; //小数点不能在第一位 else{float f;if (float.TryParse(textBox1.Text + e.KeyChar.ToString(), out f)){e.Handled = false;}}}}
代码
Private Sub TextBox1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPresse.Handled = True'输入0-9和回连键时有效If (e.KeyChar >= "0" And e.KeyChar <= "9") Or e.KeyChar = "" Thene.Handled = FalseEnd If'输入小数点情况If e.KeyChar = "." Then'小数点不能在第一位If TextBox1.Text.Length <= 0 Thene.Handled = TrueElse'小数点不在第一位Dim f As DoubleIf Double.TryParse(TextBox1.Text + e.KeyChar, f) Thene.Handled = FalseEnd IfEnd IfEnd IfEnd Sub