C# 仅当语句触发
所以我在用一个3位数的计算器,出于某种原因,我只能把它加起来,我不知道为什么。我觉得它会被指给我看,我会觉得自己很愚蠢C# 仅当语句触发,c#,calculator,C#,Calculator,所以我在用一个3位数的计算器,出于某种原因,我只能把它加起来,我不知道为什么。我觉得它会被指给我看,我会觉得自己很愚蠢 启用表示“用户是否可以单击此按钮”,而不是“这是用户刚刚单击的按钮”。由于这四个按钮都始终处于启用状态,因此第一个按钮总是如此,而else意味着它不需要查看其余按钮。@OP要添加到Joseph的答案中,您需要单独处理每个按钮的单击事件。现在我觉得自己很愚蠢。有什么替代方案?就不说了?就像@AhmedAbdelhameed所说的,您应该创建方法来分别处理每个按钮的点击。这样,例
启用
表示“用户是否可以单击此按钮”,而不是“这是用户刚刚单击的按钮”。由于这四个按钮都始终处于启用状态,因此第一个按钮总是如此,而else
意味着它不需要查看其余按钮。@OP要添加到Joseph的答案中,您需要单独处理每个按钮的单击事件。现在我觉得自己很愚蠢。有什么替代方案?就不说了?就像@AhmedAbdelhameed所说的,您应该创建方法来分别处理每个按钮的点击。这样,例如,当您单击+
按钮时,它应该运行专门用于处理单击该按钮的方法感谢您为我提供不同的视图。它不起作用。我要说的是,与更好的判断相反,这些按钮最初是单选按钮,这就是为什么我考虑这样编写代码的原因。@OkamiWilks如果它们是/曾经是单选按钮,那么您的逻辑是正确的,但您使用了错误的属性。您需要使用RadioButton.Checked
,而不是RadioButton.Enabled
。也就是说,您仍然需要分别为每个RadioButton处理单击
或检查更改
事件,这类似于无效RadioButton\u检查更改(object sender,EventArgs e){doccalculations();}
其中doccalculations()
是包含if。。否则,如果
逻辑。
private void CalcCalcBtn_Click(object sender, EventArgs e)
{
double num1 = double.Parse(calc1Txt.Text);
double num2 = double.Parse(calc2Txt.Text);
double num3 = double.Parse(calc3Txt.Text);
{
if(calcAddBtn.Enabled == true)
{
double output = (num1 + num2 + num3);
calcOpLbl.Text = output.ToString("0.00");
}
else if(calcSubBtn.Enabled == true)
{
double output = (num1 - num2 - num3);
calcOpLbl.Text = output.ToString("0.00");
}
else if(calcMutBtn.Enabled == true)
{
double output = (num1 * num2 * num3);
calcOpLbl.Text = output.ToString("0.00");
}
else if(calcDivBtn.Enabled == true)
{
double output = (num1 / num2 / num3);
calcOpLbl.Text = output.ToString("0.00");
}
}
}