Я пытаюсь написать небольшую игру «Память».
Для этого я пишу 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");
}
}
}
}
}