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

禁用C#中的按钮而不设置btn.Enabled=false;?,c#,winforms,button,C#,Winforms,Button,除了按钮1之外还有其他方法吗。Enabled=false禁止用户单击它 我正在WinForms中实现简单的TictaToe游戏,如果我使用Enabled属性,按钮文本的颜色将变成灰色,这将严重破坏我的用户界面 我想保留按钮的格式,只需禁用用户的进一步单击。您可以为所有按钮保留布尔值数组 bool [] buttonClicked = new bool [9]; 然后有9个按钮单击事件处理程序 private void button1_Clicked(object sender, EventAr

除了
按钮1之外还有其他方法吗。Enabled=false
禁止用户单击它

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


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

您可以为所有按钮保留布尔值数组

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;
    }
}
而且别忘了在每一个新游戏中都要将按钮点击的数组值重置为false

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

for(int i=0;i最简单的方法可能是在调用事件处理程序后分离它

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

    // Handle the click  
}

在每个正方形中,您可以放置一个标签和一个按钮。当按下按钮时,它会隐藏自己(设置为“可见”为“假”),并显示标签(同样通过设置其“可见”属性)。标签文本可以设置为O或X。

单击时,您的单击方法可能会有条件地决定不执行任何操作。添加代码的基本部分可能会有所帮助。是否真的要阻止任何单击可视,还是要在用户单击后避免任何交互?如果是第二次,您可以轻松地输入布尔值并返回imm如果需要的话,可以选择。单击事件属于控件类。每个控件都有一个单击事件。例如PictureBoxTransks,这确实是其他控件中最简单的解决方案。