我对编码很新,想要一些帮助 所以我正在尝试制作一个%计算器:在文本框1中输入,比如说“75%”,然后在文本框2中输入,例如,文本框3中的“1000”就会说750。
但我的问题是,现在只有当我编辑文本框2第三个更改时,我希望能够修改txtbox1中的值。
public void xylosTextBox2_TextChanged(object sender, EventArgs e)
{
//---------------------------------------------------------------------------
Int32 val1 = Convert.ToInt32(xylosTextBox1.Text);
Int32 val2 = Convert.ToInt32(xylosTextBox2.Text);
Int32 val3 = val2 * val1 / 100;
Int32 val5 = val1 + val2;
int t1 = Convert.ToInt32(xylosTextBox1.Text);
int t2 = Convert.ToInt32(xylosTextBox2.Text);
int t3 = val5;
//-----------------------------------------------------------------------------
if (val5 > 1)
{
xylosTextBox3.Text = val3.ToString();
}
}
现在我去
private void xylosTextBox1_TextChanged(object sender, EventArgs e)
尝试输入val5> 1它说它不识别val5
private void xylosTextBox1_TextChanged(object sender, EventArgs e)
if (val5 > 1)
{
xylosTextBox3.Text = val3.ToString();
}
答案 0 :(得分:3)
如果您在xylosTextBox2_TextChanged()
内声明变量,则xylosTextBox1_TextChanged()
无法看到该变量。你必须在方法之外声明它:
int val1, val2, val3, val4, val5;
public void xylosTextBox2_TextChanged(object sender, EventArgs e)
{
//---------------------------------------------------------------------------
val1 = Convert.ToInt32(xylosTextBox1.Text);
val2 = Convert.ToInt32(xylosTextBox2.Text);
val3 = val2 * val1 / 100;
val5 = val1 + val2;
int t1 = Convert.ToInt32(xylosTextBox1.Text);
int t2 = Convert.ToInt32(xylosTextBox2.Text);
int t3 = val5;
//-----------------------------------------------------------------------------
if (val5 > 1)
{
xylosTextBox3.Text = val3.ToString();
}
}
答案 1 :(得分:1)
为什么不将xylosTextBox2的相同EventHandler添加到xylosTextBox1中。这样,无论何时首先更新第一个或第二个文本框,您都将进行计算并更新第三个文本框。
xylosTextBox1.TextChanged += xylosTextBox2_TextChanged;
xylosTextBox2.TextChanged += xylosTextBox2_TextChanged;
请注意,如果你使用它,你应该将xylosTextBox2_TextChanged的名称更改为更合适的名称。