无法将“System.Windows.Forms.TextBox”类型的对象强制转换为“System.IConvertible”类型

时间:2014-11-02 23:46:17

标签: c#

我将计算四个文本框值的平均值并将其分配给标签,但这样 出现错误。不确定什么是真正的问题。这是我的代码:

    private void button2_Click(object sender, EventArgs e)
    {
        label17.Text = ((Convert.ToDecimal(textBox1.Text) + Convert.ToDecimal(textBox2) + Convert.ToDecimal(textBox3.Text) + Convert.ToDecimal(textBox4.Text)) / 4).ToString();
    }

2 个答案:

答案 0 :(得分:2)

Convert.ToDecimal(textBox2)

......应该是:

Convert.ToDecimal(textBox2.Text)

答案 1 :(得分:1)

 private void button2_Click(object sender, EventArgs e)
    {
        decimal value1 = 0;
        decimal value2 = 0;
        decimal value3 = 0;
        decimal value4 = 0;

        decimal.TryParse(textBox1.Text, out value1);
        decimal.TryParse(textBox2.Text, out value2);
        decimal.TryParse(textBox3.Text, out value3);
        decimal.TryParse(textBox4.Text, out value4);

        label17.Text = ((value1+value2+value3+value4)/4).ToString()
    }

你错过了其中一个转换中的textbox2.Text。如果Text的格式值不是数字,则转换器将返回错误(示例如果我写'123a')。因此,您应该使用TryParse方法。