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

运行WinForm应用时if语句与MessageBox未触发不显示是何原因

问题根因

代码逻辑本身没有语法错误,所有MessageBox不弹出的核心问题只有一个:你仅实现了事件处理方法,但没有将方法和对应控件/窗体的事件做订阅绑定,事件触发时根本不会执行你写的判断逻辑,自然不会弹出提示框。
具体缺失的绑定点:

  • button1_Click方法未绑定到button1的Click事件,点击按钮时不会进入选中项校验逻辑
  • Dialogs_FormClosing方法未绑定到窗体的FormClosing事件,点击右上角关闭按钮时不会触发退出确认逻辑
修复方案

你可以任选以下一种方式完成绑定:

设计器绑定(最符合WinForm开发习惯)

  1. 打开对应窗体的设计视图
  2. 选中界面上的按钮控件,点击属性窗口顶部的闪电图标切换到事件列表,找到Click条目,在右侧下拉框选择已写好的button1_Click方法
  3. 点击窗体空白处选中窗体本身,同样在事件列表中找到FormClosing条目,下拉选择Dialogs_FormClosing方法
  4. 保存修改后重新编译运行即可。

补充排查:如果运行后发现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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:45:39