5

button1.Enabled = false;除了禁止用户点击它之外,还有其他方法吗?

我正在 WinForms 中实现简单的井字游戏,如果我使用 Enabled 属性,按钮文本的颜色会变成灰色,这会严重破坏我的用户界面。

我想保留按钮的格式,只是禁止用户进一步点击。

4

3 回答 3

5

可能最简单的方法是在事件处理程序被调用后分离它。

void HandleClick(object sender, EventArgs e)
{
    ((Button)sender).Click -= HandleClick;

    // Handle the click  
}
于 2013-05-11T19:38:07.800 回答
0

您可以为所有按钮示例保留一组布尔值

bool [] buttonClicked = new bool [9];

那么你有 9 个按钮单击事件处理程序

private void button1_Clicked(object sender, EventArg e)
{
    if(buttonClicked[0]==true)
      return;
    else
    {
        // your code goes here
        // mark this button in boolean array as clicked
        buttonClicked[0] = true;
    }
}

并且不要忘记在每个新游戏中将 buttonClicked 数组值重置为 false

for(int i=0;i<9;i++)
{
    buttonClicked[i]=false;
}

希望这可以帮助

于 2013-05-11T19:30:21.790 回答
0

在每个方块中,您可以放置​​一个标签和一个按钮。当按钮被按下时,它会隐藏自己(将 Visible 设置为 false)并显示标签(再次通过设置其 Visible 属性)。标签文本可以设置为 O 或 X。

于 2013-05-11T19:39:33.183 回答