0

我正在尝试将 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

4 回答 4

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();
    }
}
于 2012-11-06T01:30:51.627 回答
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();

        }

}

于 2012-11-06T23:29:09.710 回答
0

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

于 2012-11-06T01:10:32.760 回答
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

于 2012-11-06T01:41:46.083 回答