C#需要帮助将字符串转换为Int?

时间:2011-09-05 12:05:51

标签: c# textbox

所以...我在这里有这段代码,一切看起来都很完美但是当我尝试运行它时,它会给出格式化异常处理程序错误。

    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。

4 个答案:

答案 0 :(得分:4)

你想要

bool result = Int32.TryParse(textBox1.Text, out minusTime);

如果输入不是返回false的整数,那么这将处理。

MSDN page

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。