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

C# WinForms基础测验程序故障:选错答案后下一题提前显示正确答案

问题分析与解决方案

看起来你遇到的问题根源在于点击错误答案后,你立刻调用了LoadQuestions(),跳过了showCorrectAnswer()里的倒计时逻辑,并且没有恢复按钮的可见性和样式——这就导致下一题加载时,错误选项的按钮还是隐藏的,只剩下正确答案按钮显示,看起来像是直接展示了正确答案。

下面是具体的修复步骤,完全保留你的基础结构:

1. 修改错误答案按钮的点击事件

移除错误答案按钮事件里直接调用的LoadQuestions(),让倒计时结束后再加载下一题:

private void btnAnswer1_Click(object sender, EventArgs e)
{
    showCorrectAnswer();
    MessageBox.Show("Incorrect");
    // 删掉这里的 LoadQuestions();
}

private void btnAnswer3_Click(object sender, EventArgs e)
{
    showCorrectAnswer();
    MessageBox.Show("Incorrect");
    // 删掉这里的 LoadQuestions();
}

2. 添加计时器的Tick事件处理

这个事件会负责倒计时,时间到了再恢复按钮状态并加载下一题:

首先在你的Level0num类里添加这个方法:

private void timerLoadQuestion_Tick(object sender, EventArgs e)
{
    // 读取当前倒计时数值
    int currentCountdown = int.Parse(lblCountdownval.Text);
    currentCountdown--;
    lblCountdownval.Text = currentCountdown.ToString();

    // 倒计时结束时执行操作
    if (currentCountdown == 0)
    {
        timerLoadQuestion.Stop();
        
        // 恢复所有按钮的可见性和默认样式
        btnAnswer1.Visible = true;
        btnAnswer3.Visible = true;
        btnCorrect.BackColor = SystemColors.Control; // 回到默认背景色
        
        // 加载下一题
        LoadQuestions();
    }
}

然后要确保计时器绑定了这个事件,你可以在构造函数里加上这行(或者在WinForms设计器里绑定):

public Level0num()
{
    InitializeComponent();
    // 你的其他初始化代码...
    
    // 绑定计时器的Tick事件
    timerLoadQuestion.Tick += timerLoadQuestion_Tick;
}

3. 完善LoadQuestions方法(可选但推荐)

在LoadQuestions()开头加上按钮状态恢复的代码,防止意外状态影响:

private void LoadQuestions()
{
    // 确保所有按钮可见且样式正常
    btnAnswer1.Visible = true;
    btnAnswer3.Visible = true;
    btnCorrect.BackColor = SystemColors.Control;
    
    // 你的原有代码...
    lblCountdownval.Visible = false;
    lblCountdown.Visible = false;
    Globals.intQuestionNumber += 1;
    // ... 剩下的逻辑不变
}

为什么这样修复?

之前的逻辑是点击错误答案后,先触发显示正确答案的逻辑,然后立刻加载下一题——这不仅让用户看不到正确答案的提示,还因为showCorrectAnswer()隐藏了错误选项按钮,导致下一题只显示正确答案按钮。现在的逻辑是:

  • 点击错误答案 → 显示正确答案并启动倒计时
  • 倒计时结束 → 恢复所有按钮状态 → 加载下一题
    这样既让用户有时间看到正确答案,下一题也能正常显示所有选项了。

内容的提问来源于stack exchange,提问作者Casper K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:59:39