簡體   English   中英

如何在每次按下按鈕時改變其顏色?

[英]How to change colour of button whenever it is pressed?

為了確保玩家知道他們選擇繼續前進到我的游戲上的難度,我希望通過按鈕的前景色清楚地表明當前的難度。 到目前為止,這是我的代碼,只要按下每個按鈕,它們就會改變其前景色:

public Form1()
    {
        InitializeComponent();
        MinimizeBox = false;
        MaximizeBox = false;

    }

    bool diffchosen = false;
    public static string difficulty;
    public static double multiplier;
    public static int lives;

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void easyButton_Click(object sender, EventArgs e)
    {
        this.ForeColor = Color.White;


        diffchosen = true;
        difficulty = "Easy";
        multiplier = 0.8;
        lives = 4;

    }

    private void mediumButton_Click(object sender, EventArgs e)
    {
        this.ForeColor = Color.White;


        diffchosen = true;
        difficulty = "Medium";
        multiplier = 1.0;
        lives = 3;


    }

    private void hardButton_Click(object sender, EventArgs e)
    {
        this.ForeColor = Color.White;

        diffchosen = true;
        difficulty = "Hard";
        multiplier = 1.5;
        lives = 2;


    }

    private void playButton_Click(object sender, EventArgs e)
    {
        if (diffchosen == false)
        {
            MessageBox.Show("Please choose a difficulty before proceeding");
        }
        else
        {
            Game_Screen game_Screen = new Game_Screen();

            this.Hide();
            game_Screen.Show();
        }
    }

但是我很難確保當玩家決定選擇另一個選項時,其他兩個選項具有黑色前景色屬性。 我事先使用過此方法,但是它帶來了這樣的問題,例如,每當我按下按鈕時,中按鈕和硬按鈕都會決定將其前景色更改為白色:

if (difficulty == "Hard" || difficulty = "Medium")
{
   this.ForeColour = Color.Black;       
}

如何創建一個循環,該循環將根據用戶對按鈕的選擇來更改每個按鈕的前景色?

最簡單的方法可能只是創建一個切換功能,例如

private void ToggleButton(int button)
{
    easyButton.ForeColor = Color.Black;
    mediumButton.ForeColor = Color.Black;
    hardButton.ForeColor = Color.Black;

    switch (button)
    {
        case 1: easyButton.ForeColor = Color.White; break;
        case 2: mediumButton.ForeColor = Color.White; break;
        case 3: hardButton.ForeColor = Color.White; break;
    }
}

然后在每次點擊事件中,您只需使用相應的“按鈕號”調用此函數

例如

private void easyButton_Click(object sender, EventArgs e)
{
    ToggleButton(1);
    ...
}

private void mediumButton_Click(object sender, EventArgs e)
{
    ToggleButton(2);
    ...
}

private void hardButton_Click(object sender, EventArgs e)
{
    ToggleButton(3);
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM