OK допустим у нас есть кнопки, расположенные в следующем виде 5х5C# - изменить смежный цвет кнопки при нажатии
[11] [12] [13] [14] [15]
[21] [22] [23] [24] [25]
[31] [32] [33] [34] [35]
[41] [42] [43] [44] [45]
[51] [52] [53] [54] [55]
И хотите, например, если я нажму на кнопку 34, чтобы изменить цвет кнопки 24 , 44, 33 и 35. Проблема заключается в том, что я не знаю, как это сделать, когда я нажимаю кнопку, чтобы вернуть любое из этих значений. Возьмите псевдокод того, что я хочу сделать.
When I press the button [i, j]:
Change color of button[i-1, j];
Change color of button[i +1, j];
Change color of button[i, j +1];
Change color of button[i, j-1];
Так что, когда я нажимаю кнопку, мне нужно каким-то образом получить значения I, J на кнопке, и я могу обрабатывать другие кнопки на тот же стиль (я +1, J и т.д.)
Я мог бы лечить отдельно каждую кнопку .....
private void button1_Click(object sender, EventArgs e)
{ // change colors
}
private void button2_Click(object sender, EventArgs e)
{ // change colors
}
private void button3_Click(object sender, EventArgs e)
{ // change colors
}
....
private void button25_Click(object sender, EventArgs e)
{ // change colors
}
, ..... но я есть 25 кнопок, и я не хочу, чтобы написать тот же код во всех 25 ключей.
То, что я хочу, что:
private void button[i][j]_Click(object sender, EventArgs e)
{
button[i+1][j].BackColor = Color.Red;
button[i][j+1].BackColor ...... etc. etc.
// I know is incorrect, but is just how I want to act, if you understand me.
}
Извините мой плохой английский.
Используйте массивы и добавить тот же обработчик событий для каждой кнопки. –
это может помочь вам получить больше ответов, если вы поместите дополнительные теги, которые указывают больше того типа развития, который вы делаете, т. Е. Winforms или веб-формы asp.net ... –