我正在尝试在满足特定条件时禁用按钮。我有3行按钮,例如,当我单击A行中的按钮时,所有其他行的按钮都会被禁用。我已经设法做到了。我唯一仍然遇到的问题是,我试图仅启用单击按钮旁边的按钮。这是我当前尝试执行的代码,禁用A行中不满足if语句(ch [1]!= x && ch [1]!= y && ch [ 1]!= ch [1]),可惜的是它什么也没做。我所有的按钮都被命名为A1等,因此第一个字符是该行的名称,第二个字符是按钮号。建议如何解决此问题?
编辑:我包括了所有代码,以使其更易于理解,但是我正在谈论的代码部分是:
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;
}
}