1

Addition Tutoring のサンプルを作成していますが、ユーザーの入力を確認する方法が見つかりません。MessageBox.Show学生の成績が 90 ~ 100 の場合、ほとんどの場合、この学生の成績が 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();
}

しかし、ユーザーの回答も確認できるようにしたいです。誰かがそれを実現する方法についてのアプローチを提供してくれますか? 誰でも私に与えることができるヒントをいただければ幸いです。

4

2 に答える 2

3

より良い方法は、質問にテキスト ボックスを使用し、回答に別のテキスト ボックスを使用することです。

ところで、以前にプロパティを使用したことがある場合は、プロパティを使用しReadOnlyて true に設定すると、ユーザーは問題を変更できなくなります。

さまざまな状況でのレイアウト: 数字ではありません 正しくありません 正しい

例:

//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.");
    }
  }
}
于 2013-03-09T21:29:15.267 に答える
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、回答を確認するためにクリックされたというボタンがあるとします。

于 2013-03-09T21:14:33.537 に答える