-1

我正在努力使底部有一个总数,具体取决于按下的按钮(当我点击“计算”按钮时)。按下按钮 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();

谢谢你。

4

1 回答 1

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();
}

那行得通吗?

于 2013-08-02T21:26:40.753 回答