限制用户在c# windows应用程序中只能输入数字

本文关键字:输入 数字 应用程序 windows 用户 | 更新日期: 2023-09-27 18:18:25

我试过这个代码只限制数字。它只输入数字,当我们尝试输入字符或任何其他控件时,它不会输入,甚至也不会输入退格。如何防止退格。

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

限制用户在c# windows应用程序中只能输入数字

您不需要使用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)方法和检查NumericTextbox由Microsoft

如何:创建数字文本框

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

     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;
    }