在 C# 中的文字框中僅接受數字

Muhammad Maisam Abbas 2023年1月30日 2021年4月29日
  1. C# 中帶有 NumberUpDown 檢視的僅數字文字框
  2. 在 C# 中僅帶有 TextBox 檢視的數字文字框
在 C# 中的文字框中僅接受數字

本教程將介紹在 C# 中建立一個只接受數字的文字框的方法。

C# 中帶有 NumberUpDown 檢視的僅數字文字框

NumberUpDown 檢視用於從使用者使用 C# 獲取數字輸入。要在 Windows 窗體應用程式中新增 NumberUpDown 檢視,我們只需從工具箱中選擇 NumberUpDown 並將其拖到我們的窗體中即可。NumberUpDown 檢視不會從使用者那裡獲取任何非數字值。它還允許我們使用游標鍵上下移動一個值。下面的程式碼示例向我們展示瞭如何使用 C# 中的 NumberUpDown 檢視建立一個僅接受來自使用者的數值的文字框。

using System;
using System.Windows.Forms;

namespace textbox_numbers_only
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void numericUpDown1_KeyPress(object senderObject, KeyPressEventArgs KeyPressEvent)
        {

            if (!char.IsControl(KeyPressEvent.KeyChar) && !char.IsDigit(KeyPressEvent.KeyChar) &&
                (KeyPressEvent.KeyChar != '.'))
            {
                KeyPressEvent.Handled = true;
            }
            if ((KeyPressEvent.KeyChar == '.') && ((senderObject as TextBox).Text.IndexOf('.') > -1))
            {
                KeyPressEvent.Handled = true;
            }
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
        }
    }
}

輸出:

C# 文字框僅接受數字 1

在上面的程式碼中,我們建立了一個文字框,該文字框僅使用 C# 中的 NumberUpDown 檢視接受使用者的數值。在 numericUpDown1_KeyPress() 函式中,我們新增了對 . 值的檢查,以允許使用者輸入小數點值。此文字框僅接受 2 位數字的數值。

在 C# 中僅帶有 TextBox 檢視的數字文字框

如果我們不想使用任何專有的檢視,我們還可以修改原始的 TextBox 檢視以僅接受數字值。我們可以使用 TextBox_KeyPress() 函式內的 KeyPressEventArgs.Handled 屬性來指定文字框應處理哪些按鍵。以下程式碼示例向我們展示瞭如何使用 C# 中的 TextBox 檢視建立僅接受數值的文字框。

using System;
using System.Windows.Forms;

namespace textbox_numbers_only
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }
        private void textBox1_KeyPress(object sender, KeyPressEventArgs KeyPressEvent)
        {
            KeyPressEvent.Handled = !char.IsDigit(KeyPressEvent.KeyChar);
        }
    }
}

輸出:

C# 文字框僅接受數字 2

在上面的程式碼中,我們指定了我們的文字框不應使用 textBox1_KeyPress() 函式中的 KeyPressEvent.Handled 屬性處理任何非數字值。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

相關文章 - Csharp GUI