禁用C#中的按钮没有设置btn.Enabled = false;?

时间:2013-05-11 19:22:01

标签: c# winforms button

button1.Enabled = false;旁边还有其他方法可以禁止用户点击它吗?

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

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

3 个答案:

答案 0 :(得分:5)

最简单的方法是在调用事件处理程序后将其分离。

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

    // Handle the click  
}

答案 1 :(得分: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;
}

希望这有帮助

答案 2 :(得分:0)

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