将文本框字符串转换为int

时间:2012-11-06 01:06:19

标签: c# .net winforms

我正在尝试将2个随机数变量与在文本框中输入的int值进行比较和相乘。如果它是正确的增量正确的答案它不会增加数字虽然它增量单独工作但它不适用于文本框。

private void button1_Click(object sender, EventArgs e)
{
    int x = Randomnumber.Next(12);
    int z = Randomnumber.Next(12);

    //int cv = +correct;
    textBox2.Text = x.ToString();
    textBox3.Text = z.ToString();

    int s = x * z;
    if (s == int.Parse(textBox4.Text))
    {
        correct++;
        numbercorrect.Text = correct.ToString();
    }
}

4 个答案:

答案 0 :(得分:2)

编辑这是假设您尝试让用户在按下按钮之前输入他们的猜测。想想我会把这个免责声明放在这里,因为你确实想要做的事情很困惑。

查看当前的代码示例,您正在尝试解析textBox4.Text,但是,您没有在代码示例中的任何位置设置textBox4.Text。如果textBox4.Text是string.Empty,则int.Parse将抛出异常。

您还应该考虑使用Int.TryParse,因为它会告诉您它是否有效而不会抛出异常。

编辑:由于这是一个猜谜游戏,您应该在继续之前验证用户在textBox4中的条目。

private void button1_Click(object sender, EventArgs e)
{
    int answer;
    if(!int.TryParse(textBox4.Text, out answer))
    {
        MessageBox.Show("Please Enter A Valid Integer.");
        return;
    }
    int x = Randomnumber.Next(12);
    int z = Randomnumber.Next(12);

    //int cv = +correct;
    textBox2.Text = x.ToString();
    textBox3.Text = z.ToString();

    int s = x * z;
    if (s == answer)
    {
        correct++;
        numbercorrect.Text = correct.ToString();
    }
}

答案 1 :(得分:0)

您将文本框值与两个随机值的乘积进行比较。除非你在按下按钮之前知道这两个随机数是什么,否则if会失败。

答案 2 :(得分:0)

只要按下Button1,就会运行此子程序。这将显示两个随机数,供用户相乘。 (显示在TB2和TB3中。)

现在,只要显示这些数字(并且在用户有机会输入任何答案之前),程序就会检查TB4中的值。这是空的,并在尝试解析时抛出错误。

尝试使用2个按钮将其分为2个子程序:一个按钮显示新问题,一个按钮检查答案。

编辑:代码已添加。 (注意:我写了这个写意 - 不知道它是否会编译...只是得到一般的想法。注意按钮名称。)

//This routine sets up the problem for the user.
private void btnGenerateProblem_Click(object sender, EventArgs e) { 
  //Get 2 random factors
  int x = Randomnumber.Next(12);
  int z = Randomnumber.Next(12);

  //Display the two factors for the user
  textBox2.Text = x.ToString(); 
  textBox3.Text = z.ToString(); 
}

//This routine checks the user's answer, and updates the "correct count"
private void btnCheckAnswer_Click(object sender, EventArgs e) { 
  //Get the random numbers out of the text boxes to check the answer
  int x = int.Parse(textBox2.Text);
  int z = int.Parse(textBox3.Text);

  //Compute the true product
  int s = x * z; 

  //Does the true product match the user entered product?
  if (s == int.Parse(textBox4.Text))  {
    correct++; 
    numbercorrect.Text = correct.ToString(); 
  }
}

btnCheckAnswer_Click开头添加验证码。

答案 3 :(得分:0)

    private void button1_Click(object sender, EventArgs e)
    {


        int result = Convert.ToInt32(textBox4.Text); int x, z;

        if (Convert.ToInt32(textBox2.Text) * Convert.ToInt32(textBox3.Text) == result)
        {
            correct++;
            numbercorrect.Text = correct.ToString();
            Randomnumber.Next(12);
            textBox2.Text = Randomnumber.Next(12).ToString();
            textBox3.Text = Randomnumber.Next(12).ToString();

        }

}