设置标签内容会导致问题

时间:2016-03-31 15:01:27

标签: c# wpf label

我尝试将标签的内容设置为:如果我的文本框中的值大于6000,则应显示"Under-Run Bumper",如果它应该是string.Empty"",但是当我尝试运行我的代码时,我收到以下错误:

  

对象引用未设置为对象的实例。

有人可以告诉我为什么会这样吗?

private void txtExternalLength_TextChanged(object sender, TextChangedEventArgs e)
{
    if (txtExternalLength.Text != string.Empty)
    {
        if (Convert.ToInt32(txtExternalLength.Text) >= 6000)
            lblUnderRunBumper.Content = "Under-Run Bumper";
        else lblUnderRunBumper.Content = ""; //Error here
    }
}

1 个答案:

答案 0 :(得分:-1)

如果你想在文本框中获取字符数,你应该使用.Length。 这将返回一个带有字符数的整数。

private void txtExternalLength_TextChanged(object sender, TextChangedEventArgs e)
    {
        if (txtExternalLength.Text != string.Empty)
        {
            if (txtExternalLength.Length >= 6000)
            {
                lblUnderRunBumper.Content = "Under-Run Bumper";
            }
            else 
            {
                lblUnderRunBumper.Content = ""; //Error here
            }
        }
    }

但是如果你想使用文本框中编写的Integer,你可以试试这个:

    private void txtExternalLength_TextChanged(object sender, TextChangedEventArgs e)
            {
                if (txtExternalLength.Text != string.Empty)
                {
                    int count = 0;

                    bool result = Int32.TryParse(txtExternalLength.Text, out count);
                    // Int32.TryParse(input, out output) will try to Convert the text (string) of your Textbox to an Int32. If it is successfull the result will be true, else it will be false.
                    if (result && count >= 6000)
                    {
                        lblUnderRunBumper.Content = "Under-Run Bumper";
                    }
                    else 
                    {
                        lblUnderRunBumper.Content = ""; //Error here
                    }
                }
            }