//控制控件输入的是正数(包括小数) private void txt_Weight_KeyPress(object sender, KeyPressEventArgs e) { //第一步:判断输入的是否是数字——char.IsNumber(e.KeyChar) //如果是数字,可以输入(e.Handled = false;) //如果不是数字,则判断是否是小数点 if (char.IsNumber(e.KeyChar)) { e.Handled = false; } else { //判断输入的是否是小数点,或中文状态下的句号,或者是退格键 //如果是小数点,循环判断每个字符是不是小数点,如果存在不能输入,如果不存在允许输入 //如果是退格键,允许输入——if (e.KeyChar == '\b') //如果不是小数点也不是退格键,不允许输入 if (e.KeyChar == Convert.ToChar("。") || e.KeyChar == Convert.ToChar(".")) { int i_d = 0; for (int i = 0; i < txt_Weight.Text.Length; i++) { if (txt_Weight.Text.Substring(i, 1) == ".") { e.Handled = true; i_d++; return; } } if (i_d == 0) {
e.KeyChar = Convert.ToChar(".");//设置按键输入的值为"." e.Handled = false; } } else if (e.KeyChar == '\b') { e.Handled = false; } else { e.Handled = true; } } }