我有这个表格,因为我所在的学校课程。我在运行程序时遇到了麻烦。以下是要求:
当用户单击要转换的按钮时,第一步是验证文本框中的用户输入。任何实数都是可以接受的。如果文本框中的用户输入不是实数,请在结果输出标签中显示相应的消息,如下所示。 “错误:请输入要转换的数字温度。”
如果用户输入是实数,请将其存储,然后根据所选的“转换为”单选按钮计算转换后的温度值。然后在输出标签中显示结果。请按照此示例获取适当的格式: “华氏72.4度转换为22.44摄氏度。”
当用户单击按钮清除时,表单应重置为其默认状态,准备输入。提示:除了清除输入文本框和结果输出标签之外,还有其他事情要做。
当用户点击按钮退出时,表单应该关闭,结束程序
这是我的代码:
namespace TemperatureConversionForm
{
public partial class frmTemperatureConverter : Form
{
public frmTemperatureConverter()
{
InitializeComponent();
}
private void btnConvert_Click(object sender, EventArgs e)
{
double tempurature;
double celsius;
double fahrenheit;
if (!double.TryParse(txtInput.Text, out tempurature) == false )
{
MessageBox.Show("ERROR: Please enter a numeric temperature to convert");
txtInput.ResetText();
txtInput.Focus();
}
if (rdoCelsius.Checked == true)
{
celsius = double.Parse(txtInput.Text);
celsius = (5.0 / 9.0 * (txtInput - 32));
lblConversion.Text = celsius.ToString();
}
else if (rdoFahrenheit.Checked == true)
{
fahrenheit = double.Parse(txtInput.Text);
fahrenheit = (txtInput * 9.0 / 5.0 + 32);
lblConversion.Text = fahrenheit.ToString();
}
}
private void btnClear_Click(object sender, EventArgs e)
{
txtInput.ResetText();
lblConversion.ResetText();
txtInput.Focus();
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
我收到2个错误:
代码说明
CS0019运营商' - '不能应用于' TextBox'类型的操作数和' Int'
CS0019运营商' *'不能应用于' TextBox'类型的操作数和' double'
答案 0 :(得分:1)
正如编译器告诉你的那样,你正试图在TextBox
对象上执行数学运算:
txtInput - 32
您可能打算对从TextBox
解析的值执行数学运算:
celsius = (5.0 / 9.0 * (celsius - 32));
和
fahrenheit = (fahrenheit * 9.0 / 5.0 + 32);
基本上,TextBox
是一个对象,而不是一个值。它具有属性和功能以及对象具有的各种功能。虽然你可能想从概念上认为它代表它所拥有的价值,但语言需要你比这更具体。您从TextBox
这里得到了值:
celsius = double.Parse(txtInput.Text);
然后你需要对该值本身进行计算,而不是对它所来自的TextBox
对象进行计算。