限制用户仅在C#windows应用程序中输入数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了限制用户仅在C#windows应用程序中输入数字相关的知识,希望对你有一定的参考价值。

我已经尝试过这段代码来限制数字。当我们尝试输入字符或任何其他控件时,它只键入数字并且不输入,即使它也没有输入退格。如何防止退格。

private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e)
{
     if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\d+"))
          e.Handled = true;
}
答案

您不需要使用RegEx来测试数字:

private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e)
{
     if (!Char.IsDigit(e.KeyChar))
          e.Handled = true;
}

允许退格:

private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e)
{
     if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Back)))
          e.Handled = true;
}

如果要添加其他允许的键,请查看Keys枚举并使用上述方法。

另一答案

要仅允许Windows应用程序中文本框中的数字,请使用

private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e)
{
     if (!(Char.IsDigit(e.KeyChar) || (e.KeyChar == (char)Keys.Back)))
          e.Handled = true;
}

此示例代码将允许输入数字和退格键以删除以前输入的文本。

另一答案

使用Char.IsDigit Method (String, Int32)方法并查看Microsoft的NumericTextbox

MSDN How to: Create a Numeric Text Box

另一答案

将以下代码放在文本框的按键事件中:

     private void txtbox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
    }
另一答案

你可以使用Char.IsDigit()方法

另一答案

以上建议仅阻止用户输入除数字之外的任何内容,但如果用户在文本框中复制并粘贴一些文本则会失败,因此我们还需要检查文本更改事件的输入

创建ontextchangeEvent

 private void TxtBox1_textChanged(object sender, EventArgs e)
    {
        if (!IsDigitsOnly(contactText.Text))
        {
            contactText.Text = string.Empty;
        }
    }

private bool IsDigitsOnly(string str)
    {
        foreach (char c in str)
        {
            if (c < '0' || c > '9')
                return false;
        }

        return true;
    }

以上是关于限制用户仅在C#windows应用程序中输入数字的主要内容,如果未能解决你的问题,请参考以下文章

编写一个猜数的游戏程序。(数字由机器随机产生,限制为1~100之间的整数,用户输入猜测,程序给出大小提示

如何限制用户只能输入0-50的数字

C语言中可以限制输入类型吗??例如只可以输入数字,输入其他会报错!!

仅在我的 iOS 应用程序中将 tesseract 字符限制为 a-z 和数字

用C++或者C如何实现限制输入的只能是数字,其余类型的直接退出

Java/C 求幸运数字 蓝桥杯试题,求解答!求算法!