C# 从textBox2.text和int.Parse获取输入

C# 从textBox2.text和int.Parse获取输入,c#,C#,当我按下结果按钮时,它返回一个错误,而不是检查条件是否正常。它退出时出现以下错误: mscorlib.dll中发生类型为“System.FormatException”的未处理异常 其他信息:输入字符串的格式不正确 我试图从用户那里获取输入,并将其更改为textBox2中的int。为什么应用程序退出时出现错误 private void button1_Click(object sender, EventArgs e) { string name = "t

当我按下结果按钮时,它返回一个错误,而不是检查条件是否正常。它退出时出现以下错误:

mscorlib.dll中发生类型为“System.FormatException”的未处理异常

其他信息:输入字符串的格式不正确

我试图从用户那里获取输入,并将其更改为
textBox2
中的
int
。为什么应用程序退出时出现错误

    private void button1_Click(object sender, EventArgs e)
    {
        string name = "textBox1.Text";
        int qty = int.Parse(textBox2.Text);
       
        if (textBox1.Text.Length == 0 ||  qty == 0)
        {
            MessageBox.Show("Please enter Values");
        }
        else {
            MessageBox.Show("Thank You");
        }
    }

如果您使用文本框进行数字输入,您应该订阅previewkeydown事件并只接受数字输入,因为键入任何其他字符都会失败。

您无法解析空白字符串“”记住这是空字符串编译器不知道空白表示零(数字)因为它不是。就像比尔说的那样,你必须告诉文本框只接收Visual Studio上构建的数字输入。

查找int.TryParse方法以及google int.Parse方法以了解它的功能。。。还有,这一行的用途是什么还可以读取
字符串.IsNullOrEmpty
函数连字符是合法的int字符,具体取决于其位置和频率(我不知道其他语言/区域性中是否有其他“否定”字符)。整数也有一个最大值。因此,订阅密钥事件并不一定能保证有效的输入。但这是一个好的开始。虽然我同意你所说的一切,包括作为数字输入一部分的连字符可以解决第一个问题,而简单地限制输入框的最大字符数可以解决第二个问题。我个人更喜欢数字上下控制,而不是谢谢大家的重播
private void button1_Click(object sender, EventArgs e)
{
  if(string.isNullOrWhitespace(textbox1.Text)       
     {
        MessageBox.Show("Please enter Values");
        return;
      }

   int qty = 0;
   if(!int.TryParse(textBox1.Text, out qty))        
       MessageBox.Show("Please enter a number value");        
   else
      MessageBox.Show("Thank you.");
}