文本框接受Windows窗体C中的所有值#

时间:2016-05-10 09:03:58

标签: c# .net winforms

我写了一个算术运算程序。结果工作正常。 但我想继续一点。 我想要一个文本框,它接受所有值,如正数,负值,十进制值(Int,Float,Long,Double),excpet String或Character。 输入字符串或字符时,它应该抛出一条错误消息(我将在消息框中使用try& Catch执行此操作)

private void button1_Click(object sender, EventArgs e)
{
int num1, num2, res;
num1 = int.Parse(textBox1.Text);
num2 = int.Parse(textBox2.Text);
res = num1 * num2;
textBox3.Text = (num1 * num2).ToString();
}

2 个答案:

答案 0 :(得分:2)

使用TryParse,更改最常规的num1num2类型double

private void button1_Click(object sender, EventArgs e) {
  // double as the most general numeric type
  double num1, num2;

  if (!double.TryParse(textBox1.Text, out num1)) {
    if (textBox1.CanFocus) 
      textBox1.Focus();

    MessageBox.Show(String.Format("\"{0}\" is not a valid value", textBox1.Text));
  } 
  else if (!double.TryParse(textBox2.Text, out num2)) {
    if (textBox2.CanFocus) 
      textBox2.Focus();

    MessageBox.Show(String.Format("\"{0}\" is not a valid value", textBox2.Text));
  }
  else
    textBox3.Text = (num1 * num2).ToString();
}

答案 1 :(得分:0)

您可以使用try catch,并将您的变量用作float,以便您可以在textbox输入中自由输入float和int数据

  private void button1_Click(object sender, EventArgs e)
  {
    float num1, num2, res;
    try
          {
             num1 = float.Parse(textBox1.Text);
          }
        catch (Exception)
          {
             MessageBox.Show("Error");       
          }
        try
          {
             num2 = float.Parse(textBox2.Text);
          }
        catch (Exception)
          {
             MessageBox.Show("Error");      
          }
    res = num1 * num2;
    textBox3.Text = (num1 * num2).ToString();
  }