如何在WinForms中继承变量值?

时间:2013-08-02 20:52:07

标签: winforms button

我正在努力使它在底部有一个总数取决于按下的按钮(当我按下'计算'按钮时)。如果按下按钮1,则显示30个点,如果按钮2,则显示60个点,如果按下按钮3,则显示90个点。但是可以按下它们中的任何一个或全部,所以如果按下1和3,它会显示120。

我知道有一些方法可以推进变量的值,但是我无法想到它或找到它(我在这方面很新)。我也不确定'if'语句是否是处理此问题的最佳方式(特别是如果我最终有25个左右的按钮),所以如果有更好的方法,请告诉我。

(如果按下按钮,按钮会变成浅绿色。)

int score1 = 0;

        if (button1.BackColor == Color.Lime)
        {
            label10.Text = (30 + score1).ToString();
        }
        else label10.Text = score1.ToString();

        if (button2.BackColor == Color.Lime)
        {
            label10.Text = (60 + score1).ToString();
        }
        else label10.Text = score1.ToString();

        if (button3.BackColor == Color.Lime)
        {
            label10.Text = (90 + score1).ToString();
        }
        else label10.Text = score1.ToString();

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为您只需在类中添加一个表单变量来保存运行总计:

private int totalScore = 0;

您可以使用方法设置背景颜色并添加到分数中:

private void SetBackgroundAndAddToTotal(Button button, int score)
{
    if (button.BackColor != Color.Lime)
    {
        button.BackColor = Color.Lime;
        this.totalScore = this.totalScore + score;
    }
}

在需要影响总数的每个按钮的Click处理程序中,您可以调用SetBackgroundAndAddToTotal()

private void button1_Click(object sender, EventArgs e)
{
    SetBackgroundAndAddToTotal(button1, 30);
}

private void button2_Click(object sender, EventArgs e)
{
    SetBackgroundAndAddToTotal(button2, 60);
}

// etc.

然后,在“计算”按钮的单击处理程序中,您只需从表单变量中获取已经计算的总计并显示它:

private void btnCalculate_Click(object sender, EventArgs e)
{
    label10.Text = this.totalScore.ToString();
}

那会有用吗?