如何将文本框的文本转换为值?

时间:2016-08-04 21:09:03

标签: c#

我的代码中有这个表达式

label3.Text = (((2 * 4.1) * 2) + (2 * textBox1.Text) + 31.6).ToString();

但我需要textBox1.Text值来评估表达式和答案,以便存储在label3的文本中。所以我应该能够将textBox1文本更改为2,3等等,它应该评估表达式并将答案放入label3.Text。

我该怎么做?

3 个答案:

答案 0 :(得分:1)

好的,首先你应该从第一个文本框中获取值并将其转换为double或decimal或者你正在使用的任何值。用这个

做到这一点
double textbox1_Value = Convert.ToDouble(textbox1.Text);

现在您可以将textbox1_Value插入该位置,因为它是双倍的,现在可以评估答案。

所以你的代码将是

label3.Text = (((2 * 4.1) * 2) + (2 * textbox1_Value) + 31.6).ToString();

就个人而言,如果你没有使用数据绑定,我会把它扔进try catch块,因为如果文本框值不是双倍的话怎么办?我该怎么做:

try
{
    double textbox1_Value = Convert.ToDouble(textbox1.Text);
}
catch
{
    MessageBox.Show("Error, unable to parse text");
    return;
}
label3.Text = (((2 * 4.1) * 2) + (2 * textbox1_Value) + 31.6).ToString();

因此,如果在尝试将其转换为double时出现问题,它将捕获它,您可以显示错误并关闭程序或退出该函数。

答案 1 :(得分:0)

我想我明白你在问什么。

您需要先检查文本框中的值是否为数字,然后使用它来执行计算。

label3.Text = (((2 * 4.1) * 2) + (2 * Convert.ToDouble(textBox1.Text)) + 31.6).ToString();

答案 2 :(得分:0)

问题已经解决了。谢谢。

private void TextBox1_TextChanged(object sender,EventArgs e)

{

label1.Text =(((2 * 4.1) 2)+(2 Convert.ToDouble(textbox1.Text)+31.6).ToString();

}

捕获

{

}