Я хочу знать, какая кнопка была нажата до текущей ... (buttonarray) - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь написать небольшую игру «Память».

Для этого я пишу ImageButton[] buttonArray и присваиваю каждой кнопке AlternateText. Когда я нажимаю первую кнопку, AlternateText сохраняется в переменной, а ForeColor меняется. Когда нажимается вторая кнопка, я проверяю, совпадает ли AlternateText.

Это уже работает, но после «неправильного» второго щелчка я хочу изменить ForeColor первой кнопки.

Моя идея состояла в том, чтобы сохранить информацию о первой кнопке в переменной varVorherige. На мой взгляд, это работает, потому что когда я создаю точку останова и смотрю, какая информация сохраняется в varVorherige, информация верна, но ForeColor не изменился, но тот же код работает с кнопкой current

namespace WebApplication1
{

public partial class WebForm1 : System.Web.UI.Page
{
    int a = 0;
    int b = 0;
    static int varCounter = 0;
    static int varPoints = 0;
    static string varPuffer;
    static ImageButton varVorherige;
    //string varMyMessage = "Leider falsch.";

    protected void Page_Load(object sender, EventArgs e)
    {
        this.Title = "Memory by JanSch";
        CreatingButtons();
    }

    private void CreatingButtons()
    {
        ImageButton[] buttonArray = new ImageButton[8]; //ButtonArry erstellen (8 Stück)

        for(int i = 0; i < buttonArray.Length;i++) //Erstellen und hinzufügen der Button
        {
            buttonArray[i] = new ImageButton();
            buttonArray[i].Width = 75;
            buttonArray[i].Height = 75;
            buttonArray[i].ForeColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
            buttonArray[i].BackColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
            buttonArray[i].Click += new ImageClickEventHandler(buttonArray_Click);
            this.myPanel.Controls.Add(buttonArray[i]);

            if (b == 0)
            {
                buttonArray[i].AlternateText = a.ToString();
                b = 1;
            }
            else
            {
                buttonArray[i].AlternateText = a.ToString();
                a++;
                b = 0;
            }
        }
    }

    void buttonArray_Click(object sender, ImageClickEventArgs e)
    {
        ImageButton current = sender as ImageButton;
        this.lblMessage2.Text = "Klick von: " + current.AlternateText;

        if (varCounter == 0)
        {
            varCounter = 1;
            varPuffer = current.AlternateText;
            current.ForeColor = System.Drawing.Color.Black;
            varVorherige = current;
        }
        else
        {
            if (varPuffer == current.AlternateText)
            {
                varPoints++;
                lblPoints.Text = varPoints.ToString();
                varCounter = 0;
                current.ForeColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
            }
            else
            {
                //ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + varMyMessage + "');", true);
                varCounter = 0;
                current.ForeColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");
                varVorherige.ForeColor = System.Drawing.ColorTranslator.FromHtml("#CCCCCC");

            }
        }

    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...