[Bug] .NET 2.0 的Bug —— ComboBox中不能添加Component.
2006-01-13 16:34 Colin Han 阅读(1788) 评论(8) 编辑 收藏 举报按照ComboBox的设计,我们可以在ComboBoxItemCollection中添加任何对象。同时,ComboBox使用DisplayMember属性来决定在列表中如何显示这些对象。
例如:下面的语句可以将几个TextBox的Text显示在ComboBox的DropDown列表中。







同时,当我们访问ComboBox的SelectedItem。返回TextBox对象。利用这个特性,我们可以简化很多的代码。按照微软的设计,如果DisplayMember没有指定,将会调用对象的ToString方法,将返回值作为显示字符串。Ok,很清晰。
但是在.NET 2.0中,如果你将上面Code中的最后一行删除,将会发现ComboBox中的所有项目都显示为一个空字符串。也就是没有调用ToString方法。
这个问题仅仅出现在所添加的对象是一个Component(继承自System.ComponentModel.Component)的时候。否则,一切正常。
不知道微软在搞什么?各位在做开发的时候还是要注意回避了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix