我创建了一个猜谜游戏应用程序。当用户输入一封信时,它会崩溃。我希望文本框只有整数。我试图创建一个验证,所以当用户输入一个字母时,它将只显示一个消息整数。如何在程序中添加验证,以便用户只能输入整数?
我尝试使用此代码,但它仍然崩溃:
<select>
<option class="in_stock">Size 2 - In Stock</option>
<option class="out_of_stock">Size 5 - Out Of Stock</option>
</select>
double input = Convert.ToInt32(txtInput.Text);
if (Double.TryParse(txtInput.Text, out input))
{
txtInput.Text = Convert.ToString(input);
}
else
{
MessageBox.Show("Please enter a valid number.");
}
答案 0 :(得分:0)
您可以使用NumericUpDown控件。
这个控件的优点是它不仅有一个文本框,而且只能输入数字,右边有两个小按钮可以增加1或减少1(至少默认情况下) )。
此外,可以设置更多属性。
可以找到官方文档here
以下是它的外观示例:
在codeproject,可以找到扩展版本。
答案 1 :(得分:0)
除了NumericUpDown的答案。 只需添加一些东西。通过一些小的调整,您的代码将起作用。
private void Clickbutton_click(object sender, EventArgs e)
{
//// Convert.ToInt32 throws an exception if it fails
//// to parse the string to an integer
//// So you don't want to parse the input directly
////double input = Convert.ToInt32(txtInput.Text);
// Your second attempt is the goal
double input;
if (!Double.TryParse(txtInput.Text, out input))
{
MessageBox.Show("Please enter a valid number.");
return; //// We are done. Nothing more to do here
}
txtInput.Text = input.ToString();
if ( input == guess)
{
lblMessage.Text = "You Are Corrrect, You Win" + " "+
" \r\n Random Number was = " + Convert.ToString(guess);
}
else if (input > guess)
{
lblMessage.Text = "Number is too High, Try Again";
txtInput.Clear();
}
else if (input < guess)
{
lblMessage.Text = "Number is too Low, Try Again";
txtInput.Clear();
}
}