我的代码中有这个表达式
label3.Text = (((2 * 4.1) * 2) + (2 * textBox1.Text) + 31.6).ToString();
但我需要textBox1.Text值来评估表达式和答案,以便存储在label3的文本中。所以我应该能够将textBox1文本更改为2,3等等,它应该评估表达式并将答案放入label3.Text。
我该怎么做?
答案 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();
}
捕获
{
}