尝试使用 TextChanged 作为事件将结果的总和相乘并放入文本框中
Trying to multiply and get the sum of result into a textbox using TextChanged as event
我刚开始使用 C# 和 Visual Studio,我遇到了问题。
我正在尝试使用 TextChanged 事件计算三个不同乘法的总值,因此每次我在用于乘法的文本框中输入数字时,总文本框都会更新。
textbox4 中的总结果始终为 0。我这里做错了什么?
这是我的代码
public double multip_result1;
public double multip_result2;
public double multip_result3;
public void textbox1_TextChanged(object sender, EventArgs e)
{
double a, b, multip_result1;
a = Double.Parse(textbox1.Text);
b = 4.50;
multip_result1 = a * b;
total();
}
public void textbox2_TextChanged(object sender, EventArgs e)
{
double d, f, multip_result2;
d = double.Parse(textbox2.Text);
f = 6.50;
multip_result2 = d * f;
total();
}
public void textbox3_TextChanged(object sender, EventArgs e)
{
double h, j, multip_result3;
h = double.Parse(textbox3.Text);
j = 8.50;
multip_result3 = h * j;
total();
}
public void total()
{
double total_sum;
total_sum = multip_result1 + multip_result2 + multip_result3;
textbox4.Text = total_sum.ToString();
}
您有局部变量 multip_result1
、multip_result2
、multip_result3
隐藏同名字段,只需将它们从事件处理程序中删除即可。所以f.e。这个:
double a, b, multip_result1;
变成
double a, b;
否则,您将计算出的值赋给该局部变量,该字段仍为 0。
如果要分配给具有相同名称的字段,您也可以使用 this.fieldName
。但我强烈建议不要使用相同的名称以避免出现此类问题。
在您要初始化的每个更改函数中 multip_result1、multip_result2 和 multip_result3。
这意味着它没有设置更多 public 版本,所以当 "total()" 运行时,所有值仍然为零。
"double a, b, multip_result1;" 应该是 "double a, b;" 并相应地更新其他函数。
我刚开始使用 C# 和 Visual Studio,我遇到了问题。
我正在尝试使用 TextChanged 事件计算三个不同乘法的总值,因此每次我在用于乘法的文本框中输入数字时,总文本框都会更新。
textbox4 中的总结果始终为 0。我这里做错了什么?
这是我的代码
public double multip_result1;
public double multip_result2;
public double multip_result3;
public void textbox1_TextChanged(object sender, EventArgs e)
{
double a, b, multip_result1;
a = Double.Parse(textbox1.Text);
b = 4.50;
multip_result1 = a * b;
total();
}
public void textbox2_TextChanged(object sender, EventArgs e)
{
double d, f, multip_result2;
d = double.Parse(textbox2.Text);
f = 6.50;
multip_result2 = d * f;
total();
}
public void textbox3_TextChanged(object sender, EventArgs e)
{
double h, j, multip_result3;
h = double.Parse(textbox3.Text);
j = 8.50;
multip_result3 = h * j;
total();
}
public void total()
{
double total_sum;
total_sum = multip_result1 + multip_result2 + multip_result3;
textbox4.Text = total_sum.ToString();
}
您有局部变量 multip_result1
、multip_result2
、multip_result3
隐藏同名字段,只需将它们从事件处理程序中删除即可。所以f.e。这个:
double a, b, multip_result1;
变成
double a, b;
否则,您将计算出的值赋给该局部变量,该字段仍为 0。
如果要分配给具有相同名称的字段,您也可以使用 this.fieldName
。但我强烈建议不要使用相同的名称以避免出现此类问题。
在您要初始化的每个更改函数中 multip_result1、multip_result2 和 multip_result3。
这意味着它没有设置更多 public 版本,所以当 "total()" 运行时,所有值仍然为零。
"double a, b, multip_result1;" 应该是 "double a, b;" 并相应地更新其他函数。