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

Windows Forms是/否循环程序故障:仅询问两次即退出循环

问题分析与修复

你的代码存在两个核心问题,导致循环无法持续执行:

  • 进入循环后,再次弹出的MessageBox结果没有重新赋值给answer变量,answer始终保留第一次弹窗的结果
  • 循环内的if (answer == DialogResult.Yes) { break; }逻辑错误,只要第一次选了Yes,循环执行一次就直接退出

修复后的代码

public Form1()
{
    InitializeComponent();
}

private void btn1_Click(object sender, EventArgs e)
{
    DialogResult answer;
    do
    {
        answer = MessageBox.Show("Do you want to continue?", "Huom!", MessageBoxButtons.YesNo);
    } while (answer != DialogResult.No);
}

关键修改说明

  • 使用do-while循环:先执行一次弹窗获取结果,再判断是否继续循环,符合“先询问再判断”的逻辑
  • 每次循环都将MessageBox的返回值重新赋值给answer,确保判断的是最新的用户选择
  • 移除了错误的break逻辑,只要用户不选“No”,就会持续弹窗询问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 04:42:05