Я пытаюсь отключить кнопки при выполнении определенного условия. У меня есть 3 ряда кнопок, и когда я нажимаю, например, на кнопку в ряду A, все остальные ряды кнопок отключаются. Мне уже удалось это сделать. Единственное, в чем я застрял, это то, что я пытаюсь включить ТОЛЬКО кнопки, которые находятся рядом с нажатой кнопкой. Это мой текущий код, в котором я пытаюсь это сделать, отключая каждую кнопку в строке A, которая не соответствует условию в операторе if (ch [1]! = X && ch [1]! = Y && ch [ 1]! = Ch [1]), к сожалению, это ничего не делает. Все мои кнопки названы как A1 et c. таким образом, первый символ - это имя строки, а второй символ - номер кнопки. Предложения, как я могу это исправить?
РЕДАКТИРОВАТЬ: я включил весь код, чтобы, возможно, было легче понять, но часть кода, о котором я говорю, это:
if (ch[0] == 'A')
{
Disable_Row(row_B);
Disable_Row(row_C);
foreach (Button button in row_A)
{
if (ch[1] != x && ch[1] != y && ch[1] != ch[1])
{
button.Enabled = false;
}
else
{
button.Enabled = true;
}
}
Это весь код:
private void Button_click(object sender, EventArgs e)
{
Button b = (Button)sender;
var ch = b.Name.ToCharArray();
int x = ch[1]++;
int y = --ch[1];
if(b.BackColor == Color.Green)
{
if (ch[0] == 'A')
{
Enable_Row(row_B);
Enable_Row(row_C);
}
if (ch[0] == 'B')
{
Enable_Row(row_A);
Enable_Row(row_C);
}
if (ch[0] == 'C')
{
Enable_Row(row_A);
Enable_Row(row_B);
}
b.BackColor = Color.White;
}
else
{
if (ch[0] == 'A')
{
Disable_Row(row_B);
Disable_Row(row_C);
foreach (Button button in row_A)
{
if (ch[1] != x && ch[1] != y && ch[1] != ch[1])
{
button.Enabled = false;
}
else
{
button.Enabled = true;
}
}
}
if (ch[0] == 'B')
{
Disable_Row(row_A);
Disable_Row(row_C);
}
if (ch[0] == 'C')
{
Disable_Row(row_A);
Disable_Row(row_B);
}
b.BackColor = Color.Green;
}
}