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; //禁止輸入多個小數點
        }

 

這里是輸入框,只做了部分能夠規避的操作性問題,至於輸入值是否還會有其他問題,請大家多多交流。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM