在KeyPress事件中调用如下代码,把KeyPress,和文本值传入即可 private void keyNumber(KeyPressEventArgs e, String text) { // 最多输入四位小数 if (text.IndexOf(".") != -1) { string s = text.Substring(text.IndexOf(".")); if (s.Length > 4) { // 删除键不禁用 if ((int)e.KeyChar != 8) e.Handled = true; } } try { int kc = (int)e.KeyChar; if (((kc < 48 && kc != 46) || kc > 57) && kc != 8) e.Handled = true; // 按键不生效 if (kc == 46) //小数点 { if (text.Length <= 0) e.Handled = true; //小数点不能在第一位 else { float f; float oldf; bool b1 = false, b2 = false; b1 = float.TryParse(text, out oldf); b2 = float.TryParse(text + e.KeyChar.ToString(), out f); if (b2 == false) { if (b1 == true) e.Handled = true; else e.Handled = false; } } } } catch (Exception) { } }