C#windows窗体-如何只允许在文本框中输入整数?

C#windows窗体-如何只允许在文本框中输入整数?,c#,winforms,C#,Winforms,我是C#的新手,这是我第一次尝试创建windows窗体。我创建了一个非常简单的计算器,它有两个文本框供用户输入数字。它有一个(n)加、减、乘、除按钮,当用户在文本框中输入值并单击其中一个按钮时,结果显示在标签中。我想只允许整数被输入到文本框中,但我不知道如何才能做到这一点。如有任何意见或建议,我们将不胜感激。谢谢 以下是我目前的代码: namespace SimpleCalc { public partial class Form1 : Form { public Form1()

我是C#的新手,这是我第一次尝试创建windows窗体。我创建了一个非常简单的计算器,它有两个文本框供用户输入数字。它有一个(n)加、减、乘、除按钮,当用户在文本框中输入值并单击其中一个按钮时,结果显示在标签中。我想只允许整数被输入到文本框中,但我不知道如何才能做到这一点。如有任何意见或建议,我们将不胜感激。谢谢

以下是我目前的代码:

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

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void AddBtn_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
            ResultLbl.Text = (Convert.ToInt32(textBox1.Text) + Convert.ToInt32(textBox2.Text)).ToString();
    }

    private void SubtractBtn_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
            ResultLbl.Text = (Convert.ToInt32(textBox1.Text) - Convert.ToInt32(textBox2.Text)).ToString();
    }

    private void MultiplyBtn_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
            ResultLbl.Text = (Convert.ToInt32(textBox1.Text) * Convert.ToInt32(textBox2.Text)).ToString();
    }

    private void DivideBtn_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(textBox1.Text) && !string.IsNullOrEmpty(textBox2.Text))
            ResultLbl.Text = (Convert.ToInt32(textBox1.Text) / Convert.ToInt32(textBox2.Text)).ToString();
    }
}

}

您可以使用以下功能,并将其添加到文本框的按键事件中

private void txtbox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }

最简单的方法是使用NumericUpDown控件而不是文本框。NumericUpDown只允许数字作为输入,并且具有与TextBox类似的属性

按如下方式访问值:

decimal answer=numericUpDown1.Value
`使用


你可以在这里找到一个类似的问题

简单点试试这个

//function
public static void NumberOnly(object sender, KeyPressEventArgs e)
{
     e.Handled = !char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar);
}

//to call used this
NumberOnly("your textbox");

如果它是一个计算器,数字上下可能更合适。它们仍然不是整数,但不允许使用字母。请阅读并采取行动