C#控制台限制只能输入数字|小数点,WinForm限制控件TextBox只能输入数字|小数点
一、控制台限制只能输入数字
static void Main(string[] args) { Console.WriteLine("本控制台程序为演示只能输入数字功能"); Console.WriteLine("请输入数值:"); var Falg = true; var InputValue = ""; while (Falg) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(true); if (!char.IsDigit(key.KeyChar) && key.KeyChar != '\b' && key.KeyChar != '\r') continue; if (key.KeyChar == '\r' && InputValue.Trim() == "") continue; //禁止第一个字符就换行 if (key.KeyChar == '\r') { Falg = false; continue; } else { Console.Write(key.KeyChar); InputValue += key.KeyChar; } } } Console.WriteLine(); Console.WriteLine("输入的数字是:{0}", InputValue); Console.ReadKey(); }
二、控制台限制只能输入数字|小数点
static void Main(string[] args) { Console.WriteLine("本控制台程序为演示只能输入数字|小数点功能"); Console.WriteLine("请输入数值:"); var Falg = true; var InputValue = ""; while (Falg) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(true); if (!char.IsDigit(key.KeyChar) && key.KeyChar != '\b' && key.KeyChar != '\r' && key.KeyChar != '.') continue; if (key.KeyChar == '\r' && InputValue.Trim() == "") continue; //禁止第一个字符就换行 if (key.KeyChar == '.' && InputValue.Trim() == "") continue; //禁止第一个字符就输入小数点 if (key.KeyChar == '0' && InputValue.Trim() == "") continue; //禁止第一个字符就输入0 if (key.KeyChar == '.' && InputValue.Contains(".")) continue; //禁止输入多个小数点 if (key.KeyChar == '\r') { if (InputValue.Substring(InputValue.Length - 1, 1) == ".") { continue;//禁止小数点后就换行 } Falg = false; continue; } else { Console.Write(key.KeyChar); InputValue += key.KeyChar; } } } Console.WriteLine(); Console.WriteLine("输入的数字是:{0}", InputValue); Console.ReadKey(); }
三、限制TextBox控件只能输入数字(其他部分输入内容控件均可适用以下代码)
private void txtBoxPress_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar) && e.KeyChar != '\b') { e.Handled = true; //非以上键则禁止输入 } if (e.KeyChar == '0' && txtBoxPress.Text.Trim() == "") e.Handled = true; //禁止第一个字符就输入0 }
四、限制TextBox只能输入数字|小数点
private void txtBoxPress_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar) && e.KeyChar != '\b' && e.KeyChar != '.') { e.Handled = true; //非以上键则禁止输入 } if (e.KeyChar == '0' && txtBoxPress.Text.Trim() == "") e.Handled = true; //禁止第一个字符就输入0 if (e.KeyChar == '.' && txtBoxPress.Text.Trim() == "") e.Handled = true; //禁止第一个字符就输入小数点 if (e.KeyChar == '.' && txtBoxPress.Text.Contains(".")) e.Handled = true; //禁止输入多个小数点 }
这里是输入框,只做了部分能够规避的操作性问题,至于输入值是否还会有其他问题,请大家多多交流。