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
相关产品推荐
相关产品推荐

