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; //禁止输入多个小数点
        }

 

这里是输入框,只做了部分能够规避的操作性问题,至于输入值是否还会有其他问题,请大家多多交流。

 

posted @ 2022-03-14 11:05  漫漫步子  阅读(1889)  评论(0编辑  收藏  举报