C#:两次单击“我的计算”按钮时,两步文本框计算只能产生正确的结果
我完全理解为什么会发生这种情况,但我不知道如何解决它。Textbox3提取的是textbox2的初始值,而不是新的计算值。这不是一个学校的项目,而是一个简单的计算器,用于我办公室的一些我们使用的无线电硬件。我可以通过编程方式让按钮点击两次来解决这个问题,但我想知道如何用正确的方式解决这个问题。我的程序总是那么简单,我被指责为“家庭作业”,但我可以保证它不是。我相信这很简单,因为有两个偏执狂失踪了…提前谢谢C#:两次单击“我的计算”按钮时,两步文本框计算只能产生正确的结果,c#,button,click,C#,Button,Click,我完全理解为什么会发生这种情况,但我不知道如何解决它。Textbox3提取的是textbox2的初始值,而不是新的计算值。这不是一个学校的项目,而是一个简单的计算器,用于我办公室的一些我们使用的无线电硬件。我可以通过编程方式让按钮点击两次来解决这个问题,但我想知道如何用正确的方式解决这个问题。我的程序总是那么简单,我被指责为“家庭作业”,但我可以保证它不是。我相信这很简单,因为有两个偏执狂失踪了…提前谢谢 private void button1_Click(object sender,
private void button1_Click(object sender, EventArgs e)
{
if (double.TryParse(textBox1.Text, out origin)
&& double.TryParse(textBox2.Text, out tb2)
&& double.TryParse(textBox4.Text, out channels))
textBox2.Text = (30.00 - (10 * Math.Log10(origin))).ToString("n2");
textBox3.Text = (tb2 - (10 * Math.Log10(channels))).ToString("n2");
}
在更改textbox2中的值之前,您正在分配tb2。您应该将代码更改为:
if (double.TryParse(textBox1.Text, out origin)
&& double.TryParse(textBox4.Text, out channels))
{
textBox2.Text = (30.00 - (10 * Math.Log10(origin))).ToString("n2");
if (double.TryParse(textBox2.Text, out tb2)
{
textBox3.Text = (tb2 - (10 * Math.Log10(channels))).ToString("n2");
}
}
将计算更改为:
tb2 = 30.00 - (10 * Math.Log10(origin));
var tb3 = tb2 - (10 * Math.Log10(channels));
textBox2.Text = tb2.ToString("n2");
textBox3.Text = tb3.ToString("n2");
谢谢大家,我只是碰巧先试试这个,它成功了!我很感激你的快速回复!