C# Tic Tac Toe游戏:如何禁用已被选中的按钮?
C# 井字棋按钮防重复点击解决方案
你的代码逻辑顺序有问题——先给按钮赋值再判断是否已被点击,这会导致旧内容被覆盖,判断也失去意义。下面是修正后的实现:
核心判断条件是检查按钮的Text是否为空(初始状态下按钮文本应为空,被点击后会设置为X/O)。如果不为空,说明已经被选过,直接跳过后续操作。
修正后的完整代码:
string Player = "X"; private void myButton_Click(object sender, EventArgs e) { Button currentButton = (Button)sender; // 判断按钮是否已被选中(文本不为空) if (!string.IsNullOrEmpty(currentButton.Text)) { // 已被选中,直接返回不做操作 return; } // 未被选中,设置当前玩家标记 currentButton.Text = Player; // 禁用按钮防止再次点击(也可保留启用状态,仅通过Text判断,但禁用体验更直观) currentButton.Enabled = false; // 切换玩家 Player = Player == "X" ? "O" : "X"; }
关键说明:
- 判断逻辑:
!string.IsNullOrEmpty(currentButton.Text)是最直接的判断方式,适配初始按钮文本为空的场景。 - 流程顺序:先判断再赋值,避免覆盖已有的X/O标记。
- 玩家切换简化:用三元运算符替代嵌套if,代码更简洁清晰。
内容的提问来源于stack exchange,提问作者Suyoung Eun
相关产品推荐
相关产品推荐

