C# 根据表格BTN添加的方法

C# 根据表格BTN添加的方法,c#,winforms,class,C#,Winforms,Class,使用WinC窗体# 有没有一种方法可以重用一个方法,但是当用户在表单上选择另一个按钮时,这些方法会将一个图形添加到旧的图形中。让我进一步解释 我有一个方法为“加法”的类 我有两个基站。Btn1和Btn2 当我选择Btn1时,我将执行该方法,结果为0.13 我需要它,所以当我选择Btn2时,它会改变,将0.12添加到结果上 另外,如果再次选择Btn 1,我需要它返回到0.13 我该怎么做呢?我尝试过使用flags1、flags2并以这种方式进行操作,但没有成功 谢谢您可以使用布尔值(标志)来确定它

使用WinC窗体#

有没有一种方法可以重用一个方法,但是当用户在表单上选择另一个按钮时,这些方法会将一个图形添加到旧的图形中。让我进一步解释

我有一个方法为“加法”的类

我有两个基站。Btn1和Btn2

当我选择Btn1时,我将执行该方法,结果为0.13

我需要它,所以当我选择Btn2时,它会改变,将0.12添加到结果上

另外,如果再次选择Btn 1,我需要它返回到0.13

我该怎么做呢?我尝试过使用flags1、flags2并以这种方式进行操作,但没有成功

谢谢

您可以使用布尔值(标志)来确定它是否已经被添加,也许可以更改按钮的背景色以反映状态。正如其他人所说,复选框听起来更有意义,但我会在这里尽我所能

您还可以使用对应于按钮的双精度数组

double[] bttn=new double[6]{0,0,0,0,0,0};

double weighin {get { 
                      double temp=0;
                      foreach (double d in bttn) 
                      temp=temp+d;
                      return d;
                     }
                }
然后在按钮中单击事件

private void Button_Click(object sender, EventArgs e)
{
    switch ((Control)sender).Name)
    {
        //so what happens here is, if the value is 0 make it the value indicated else make it 0
        case "Button0":bttn[0] = bttn[0]==0 ? 0.01 : 0;
                       break;
        case "Button1":bttn[1] = bttn[0]==0 ? 0.12 : 0;
                       break;
        case "Button2":bttn[2] = bttn[0]==0 ? 0.24 : 0;
                       break;
        case "Button3":bttn[3] = bttn[0]==0 ? 0.48 : 0;
                       break;
        case "Button4":bttn[4] = bttn[0]==0 ? 0.96 : 0;
                       break;
        case "Button5":bttn[5] = bttn[0]==0 ? 1.92 : 0;
                       break;
    }
}
然后要使用它,只需使用weighin。它将添加数组的所有元素

double MyWeight = weighin;

我没有测试任何代码的语法

因此,按钮1计算0.13,当您单击按钮2时,您想要0.25,但如果再次单击按钮1,您想要0.13?这背后的逻辑是什么?听起来按钮2应该只是一个复选框或什么的。你应该提供背后的逻辑,这将帮助我们了解你的想法。是的,这是正确的。这是因为我需要的数字,以改变根据所选的Btn,但我不希望它添加额外的0.12,如果Btn 1再次被选中。最终我将有6个基站。Btn1为0.01+0.12。Btn2是结果+0.12,Btn3是Btn2的结果+0.12,等等。但一旦计算完成,我不希望再次计算,我需要结果保持不变,所以Btn1,再次单击后保持为0.13,并且不会每次增加0.12。
double MyWeight = weighin;