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

C# 用于接受Windows窗体C中所有值的文本框#,c#,.net,winforms,C#,.net,Winforms,我写了一个算术运算程序。结果很好。 但我想说一点。 我想要一个文本框,它接受所有值,如正值、负值、十进制值(Int、Float、Long、Double)excpet字符串或字符。 当输入字符串或字符时,它应该抛出一条错误消息(我将在消息框中使用try&Catch执行此操作) 您可以使用try-catch,并将变量用作float,以便可以在文本框输入中自由输入float和int数据 private void button1_Click(object sender, EventArgs e)

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


您可以使用try-catch,并将变量用作float,以便可以在文本框输入中自由输入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();
  }

您可以使用try-catch,并将变量用作float,以便可以在文本框输入中自由输入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();
  }

使用
TryParse
,将
num1
num2
类型更改为最通用的(
double
):


使用
TryParse
,将
num1
num2
类型更改为最通用的(
double
):


NumericUpDown
接受除字符串或字符以外的所有值,如正值、负值、十进制值(Int、Float、Long、Double)。中断键入的消息框是邪恶的
NumericUpDown
接受除字符串或字符以外的所有值,如正值、负值、十进制值(Int、Float、Long、Double)。中断键入的消息框是无效的,它不会处理浮点,只处理整数。好的,我正在编辑,如果你想让用户输入浮点,那么你可以直接解析它,而不是浮点,因为你可以将整数存储在浮点中,所以输入一个变量,然后计算它是正确的。这不会处理浮点,只处理整数。好的,我正在编辑,如果你想让用户输入float,那么你可以直接解析它float,而不是int,因为你可以将int存储在float中,所以输入一个变量,然后将其计算为wishwhat如果用户有意输入“0”,那么,
0
将转换为
double
,而,
'0'
(带撇号)将不会被转换并且
“0”不是有效值
消息将显示0在乘法中没有意义,但作为程序员,您应该能够接受0,因为它是一个结果,但这取决于规则。我得到一个错误
名称“ShowMessage”在当前上下文中不存在
@gayan1991:我接受
0
、或
0.0
、或
0e1
、或
-0
以及任何数字格式;我拒绝的是字符
'0'
如果这个人故意输入一个'0'怎么办?@gayan1991:嗯,
0
将转换成
double
,而
'0'
(带撇号)将不会被转换并且
“0”不是有效值
消息将显示0在乘法中没有意义,但作为程序员,您应该能够接受0,因为它是一个结果,但这取决于规则。我得到一个错误
名称“ShowMessage”在当前上下文中不存在
@gayan1991:我接受
0
、或
0.0
、或
0e1
、或
-0
以及任何数字格式;我拒绝的是字符
'0'
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();
}