运行WinForm应用时if语句与MessageBox未触发不显示是何原因
问题根因
代码逻辑本身没有语法错误,所有MessageBox不弹出的核心问题只有一个:你仅实现了事件处理方法,但没有将方法和对应控件/窗体的事件做订阅绑定,事件触发时根本不会执行你写的判断逻辑,自然不会弹出提示框。
具体缺失的绑定点:
button1_Click方法未绑定到button1的Click事件,点击按钮时不会进入选中项校验逻辑Dialogs_FormClosing方法未绑定到窗体的FormClosing事件,点击右上角关闭按钮时不会触发退出确认逻辑
修复方案
你可以任选以下一种方式完成绑定:
设计器绑定(最符合WinForm开发习惯)
- 打开对应窗体的设计视图
- 选中界面上的按钮控件,点击属性窗口顶部的闪电图标切换到事件列表,找到
Click条目,在右侧下拉框选择已写好的button1_Click方法 - 点击窗体空白处选中窗体本身,同样在事件列表中找到
FormClosing条目,下拉选择Dialogs_FormClosing方法 - 保存修改后重新编译运行即可。
补充排查:如果运行后发现ListBox中没有你预置的4个水果选项,说明
Dialogs_Load方法也未绑定到窗体的Load事件,按相同逻辑绑定Load事件即可。
代码手动绑定
如果不想操作设计器,可以直接在窗体构造函数中追加事件订阅代码,修改后的构造函数如下:
public Dialogs() { InitializeComponent(); // 追加事件绑定 button1.Click += button1_Click; this.FormClosing += Dialogs_FormClosing; // 如果ListBox没有预置项,再追加下面这行 // this.Load += Dialogs_Load; }
内容的提问来源于stack exchange,提问作者Fullsailer
相关产品推荐
相关产品推荐

