如何让应用程序检查用户输入?

时间:2013-03-09 21:07:33

标签: c# winforms random

我正在制作一个Addition Tutoring样本,但我找不到检查用户输入的方法。我知道有些方法可以对小事进行比较对比,例如,当学生的成绩为90-100时,也许你可以应用MessageBox.Show表示在大多数情况下该学生的成绩被视为A级。但是,当你检查额外的金额时,我无法弄清楚要使用哪种尝试。比如,下面的代码段会为用户产生新的问题。

private void Newproblem_Click(object sender, EventArgs e)
{
  Random Numbers = new Random();
  int number1;
  int number2;
  int Sum;

  number1 = Numbers.Next(400) + 101;
  number2 = Numbers.Next(400) + 101;
  theproblemLabel.Text = number1 + "  +  " + number2.ToString();
}

但我希望能够检查用户的答案。有人会为我提供一个如何实现这一目标的方法吗?我将非常感谢任何人都能给我的暗示。

2 个答案:

答案 0 :(得分:3)

更好的方法是使用问题的文本框和答案的另一个文本框。

顺便说一下,如果您之前使用过属性,可以使用属性:ReadOnly并将其设置为true,这样用户就无法修改问题。

不同情况的布局: Not a number Not correct Correct

示例:

//Declare variables so you can use them globally
int number1, number2, sum, userSolution;
Random numbers;

private void btnProblem_Click(object sender, EventArgs e)
{
  numbers = new Random();
  number1 = numbers.Next(400) + 101;
  number2 = numbers.Next(400) + 101;

  sum = number1 + number2;
  txtProblem.Text = number1 + "  +  " + number2;
}

private void btnSolution_Click(object sender, EventArgs e)
{
  // You try to parse the text to a integer,
  // if it works its stored in userSolution,
  // If it fails, it shows the messagebox
  if (!int.TryParse(txtSolution.Text, out userSolution))
  {
    MessageBox.Show("Input is not a valid number.");
  }
  else
  {
    // Check user solution and compare it to the sum
    if (userSolution == sum)
    {
      MessageBox.Show("Correct!", "Problem Solved!");
    }
    else
    {
      MessageBox.Show("Not Correct.", "Please try again.");
    }
  }
}

答案 1 :(得分:1)

您可以将答案存储在文本框的Tag属性中

number1 = Numbers.Next(400) + 101;
number2 = Numbers.Next(400) + 101;
int answer = number1 + number2;

theproblemLabel.Text = string.Format("{0} + {1}", number1, number2);
theproblemLabel.Tag = answer;

然后,当用户单击按钮确认其答案时,您将检查存储的标记

private void Answer_Click(object sender, EventArgs e)
{
  int userAnswer;
  if(!Int32.TryParse(txtAnswer.Text, out userAnswer))
    MessageBox.Show("Please enter a number!");
  else
  {
    if(userAnswer == Convert.ToInt32(theproblemLabel.Tag))
      MessageBox.Show("Correct answer!");
    else
      MessageBox.Show("Wrong answer, try againg!");
  }
}

我假设您有一个名为txtAnswer的TextBox,其中用户键入其答案,并点击一个名为Answer的按钮以确认答案