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

Windows Forms中ListBox选中事件未实现异常及方法处理求助

解决ListBox自动生成的SelectedIndexChanged事件处理问题

嘿,我完全懂你踩的这个坑——设计视图里不小心点了控件的事件,生成了空的处理方法,删也不是留也不是对吧?

问题核心是事件绑定没解绑:你删掉代码文件里的PrizesListBox_SelectedIndexChanged和tournamentPlayersListbox_SelectedIndexChanged方法后,窗体的设计器文件(比如YourFormName.Designer.cs)里还保留着这些事件的绑定代码,VS编译时找不到对应的方法就会报错;而留着方法的话,因为里面只有throw new NotImplementedException();,点击ListBox项触发事件时就会抛出这个异常。

给你两种简单的解决办法:

方法一:通过设计视图可视化解绑(推荐,更安全)

  • 回到窗体的设计视图,选中对应的ListBox控件(PrizesListBox或tournamentPlayersListbox)
  • 按F4打开属性窗口,切换到最右边的事件标签(那个闪电形状的图标)
  • 在事件列表里找到SelectedIndexChanged,点击右边的下拉框,选择<无>,或者直接删掉里面的方法名
  • 保存窗体,之后再删掉代码文件里那两个空的事件处理方法就不会报错了

方法二:手动修改设计器文件

如果你习惯直接改代码,可以这么操作:

  • 在解决方案资源管理器里展开你的窗体文件,找到对应的[窗体名].Designer.cs文件并打开
  • 搜索类似下面的代码行:
    this.PrizesListBox.SelectedIndexChanged += new System.EventHandler(this.PrizesListBox_SelectedIndexChanged);
    this.tournamentPlayersListbox.SelectedIndexChanged += new System.EventHandler(this.tournamentPlayersListbox_SelectedIndexChanged);
    
  • 删除这些绑定事件的代码,保存文件,之后就可以安全删除代码文件里的空方法了

要是之后你确实需要用到这个选中事件,只需要把throw new NotImplementedException();替换成你实际要执行的逻辑就行,比如获取选中项、更新UI之类的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:05:12