【发布时间】:2014-07-15 15:01:12
【问题描述】:
我正在创建一个继承自 ComboBox 的自定义控件。我需要检测何时将 Item 添加到 ComboBox 以执行我自己的检查。是 C# 还是 Vb.NET 没关系,但我不知道该怎么做。
我尝试了我在互联网上找到的所有东西,包括this thread,但答案中的链接处于离线状态,我不知道该怎么办。
例如vb.net中的这段代码:
Public Sub SomeFunc() Handles Items.CollectionChanged
'....
End Sub
它说Items 属性未定义WithEvents。
控件未使用 BindingSource。添加项目时,我需要控件来执行自定义操作。项目直接添加到 .Items 属性中:
customComboBox.Items.Add("item");
可以吗?
【问题讨论】:
-
这是 WPF 还是 WinForms?你能显示一些代码吗?项目是如何添加到 ComboBox 中的?
-
@Savanna Winforms,已编辑
-
在您提供的链接中,建议订阅 ComboBox 的 Items 集合上的 CollectionChanged 事件。你试过这个吗?请发布您的代码,以便我们了解您遇到的问题。
-
how can I do that困难重重。我开始继承 LV Items 集合并放弃了。请记住,尤其是对于 CBO 和 LB,它们不仅仅是字符串,还可以是集合中的类对象,因此您需要承担很多工作。 -
我正在寻找解决方案。使用反射我能够更改 ComboBox 的内部项目集合(私有字段
itemCollection),但ComobBox.ObjectCollection不允许您覆盖 Add 方法(尽管 this[index] 是虚拟的)。我想我已经准备好放弃了,但以防万一有人想走得更远然后this might be of interest。使用类似的方法,有人可能会覆盖集合的 Add 方法。
标签: c# .net vb.net winforms combobox