You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 06:42:52