所以...我在这里有这段代码,一切看起来都很完美但是当我尝试运行它时,它会给出格式化异常处理程序错误。
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text != null)
{
minusTime = Convert.ToInt32(textBox1.Text); // fix this... idk what's even wrong. Just trying to assign user input to minusTime...
}
else
{
minusTime = 0;
}
}
*注意:textbox1是用户输入的整数值。 minusTime是一个空整数,将分配给用户输入。
我尝试使用“Convert.ToInt32(textBox1.Text)”运行它,但它仍然给我一个例外,说用户输入了错误的格式......当用户输入显然是int。
答案 0 :(得分:4)
你想要
bool result = Int32.TryParse(textBox1.Text, out minusTime);
如果输入不是返回false
的整数,那么这将处理。
有another overload可以获取有关数字可能格式的更多信息:
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out int result
)
这将处理货币符号等。
答案 1 :(得分:2)
尝试使用:
minusTime = Int32.Parse(textBox1.Text);
答案 2 :(得分:1)
private void textBox1_TextChanged(object sender, EventArgs e)
{
var minusTime;
if (textBox1.Text != null && int.TryParse(textBox1.Text, out minusTime))
{
}
else
{
minusTime = 0;
}
}
答案 3 :(得分:0)
您可以使用:
int minusTime=0;
Int32.TryParse(textBox1.Text, out minusTime);
如果textBox1.Text不是整数,或者即使它为null,minusTime将为0。