我最近一直在通过创建自定义Component
派生类来为一些不同的 WinForms 控件添加自定义功能,这些派生类只是包装Control
,挂钩到所需的事件以执行额外的功能。
例如,我想在我的应用程序中为几个不同的控件添加拖放功能ListBox
,所以我创建了一个DragAndDropListBoxComponent
继承自Component
该类的控件,然后将此新组件添加到我需要添加功能的表单中,设置DragAndDropListBoxComponent
的ListBox
属性到我想添加功能的列表框。
我喜欢这种扩展标准功能的方法,因为我可以为相同Control
的内容创建多个自定义行为类型并将它们混合在一起以获得一些有趣的效果。这也有利于组合优于继承的原则。Component
Control
我似乎花了一些时间来实现使用 Component 类列表这个。这部分是由于从未在网上看到它以这种方式使用 - 因此我的问题。自定义组件类是否常用这种方式?