C# 如何让应用程序检查用户输入?
我正在制作一个附加教程示例,我无法找到检查用户输入的方法。我知道有很多方法可以对一些小事情进行对比,比如,当一个学生的成绩是90-100分时,也许你可以应用一个C# 如何让应用程序检查用户输入?,c#,winforms,random,C#,Winforms,Random,我正在制作一个附加教程示例,我无法找到检查用户输入的方法。我知道有很多方法可以对一些小事情进行对比,比如,当一个学生的成绩是90-100分时,也许你可以应用一个MessageBox.Show,表明这个学生的成绩在大多数情况下被认为是a。但是,我不知道在检查加法的和时使用哪种方法。与此类似,下面的代码片段将为用户产生新的问题 private void Newproblem_Click(object sender, EventArgs e) { Random Numbers = new Rand
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();
}
但我也希望能够检查用户的答案。有没有人能给我提供一个方法来实现这一点?如果有人能给我任何提示,我将不胜感激。您可以将答案存储在文本框的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
的文本框,用户在其中键入答案,并单击一个名为answer
的按钮确认答案,您可以将答案存储在文本框的标记属性中
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
的文本框,用户在其中键入答案,并单击一个名为answer
的按钮以确认答案。更好的方法是使用一个文本框回答问题,另一个文本框回答问题
顺便说一句,如果您以前使用过属性,您可以使用属性: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.");
}
}
}
更好的方法是使用文本框回答问题,使用另一个文本框回答问题 顺便说一句,如果您以前使用过属性,您可以使用属性:
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.");
}
}
}
对不起,我不明白你在干什么!?你想要什么输入?您使用的是控制台应用程序、WinForms还是WPF?您的确切意思是什么?是否要查看用户为求和数字1+2的结果填写的内容?哦,对不起,我正在使用Microsoft Visual Studio来执行此操作。@bash.d她没有使用控制台应用程序,而是使用文本框。它们不存在于控制台中apps@Cindy当前位置将所有信息放在你的问题中,而不是隐藏在评论中。对不起,我不明白你在干什么!?你想要什么输入?您使用的是控制台应用程序、WinForms还是WPF?您的确切意思是什么?是否要查看用户为求和数字1+2的结果填写的内容?哦,对不起,我正在使用Microsoft Visual Studio来执行此操作。@bash.d她没有使用控制台应用程序,而是使用文本框。它们不存在于控制台中apps@Cindy:把所有的信息放在你的问题中,而不是隐藏在评论中。提出非黑客解决方案怎么样?这类数据应该存储在合理的数据结构中,而不是填充到UI控件的额外字段中。非常感谢史蒂夫。(:@siride,因为这是一个非常简单的问题?。因为没有必要增加额外的复杂性?也许如果用户询问如何存储一堆问题和答案,将需要更好的方法,但是,我认为,在这个阶段,让解决方案变得简单。提出非黑客解决方案如何?此类数据应该被保存在合理的数据结构中使用红色,而不是填充到UI控件的额外字段中。哦,好的。非常感谢Steve。(:@siride,因为这是一个非常简单的问题?。因为没有必要增加额外的复杂性?也许如果用户询问如何存储一堆问题和答案,将需要更好的方法,但是,我认为,在这个阶段,让解决方案变得简单。@Cindy如果你有任何其他问题,请随意提问。我喜欢这些小练习:P只是为了教学。这个解决方案在不需要全局变量的地方引入全局变量。当然,在这里,它们不是问题,但是当你可以用不同的方式工作时,最好避免它们。@Steve是的,这不是真的需要,但你必须在这里使用它们,至少是总和,因为你在创建时计算总和这是一个新问题,如果您想更改文本框输入,用户无法更改解决方案,或者只是将文本框设置为只读以防止出现这种情况。@Cindy如果您有任何其他问题,请随意提问。我喜欢这些小练习:P9只是为了教学。此解决方案在不需要全局变量的地方引入全局变量。当然当然,在这里,它们不是问题,但是当你可以以不同的方式工作时,最好避免它们。@Steve是的,这不是真的需要,但你必须在这里使用它们,至少是总和,因为你在创建新问题时计算总和,这样,如果你想更改文本框输入,或者只是放置文本B,用户就不能更改解决方案将ox设置为只读以防止出现这种情况。