【发布时间】:2010-10-14 22:28:51
【问题描述】:
在 WinForms .Net 控件的世界中
组件和控件有什么区别?
- 控件可以包含任何组件吗?
- 组件可以包含任何控件吗?
【问题讨论】:
-
这篇文章可能会有所帮助:msdn.microsoft.com/en-us/library/0b1dk63b.aspx
标签: winforms controls components
在 WinForms .Net 控件的世界中
组件和控件有什么区别?
【问题讨论】:
标签: winforms controls components
控件具有充当窗口所需的所有管道。响应 Window 消息 (WndProc) 和拥有句柄的能力是最重要的。组件缺少所有这些。它真的很简单,它具有设置属性的设计时支持,并且可以被释放,仅此而已。
组件仍然可以有运行时表示,OpenFileDialog 就是最好的例子。但这实际上是 Windows 内置的对话框,而不是 Windows 窗体。
【讨论】:
Load 事件。那么如何执行在包含组件的表单加载后需要进行的初始化???
组件只是对象/子 API 的表示。例如。 ImageList 是一个不可见的组件,只是一组图像的 API。您可以将它们拖放到表单上的事实只是设计器中的糖。
控件旨在可见/可交互/可嵌套。
【讨论】:
响应您的评论,可以在对象浏览器中看到组件和控件来自不同的对象层次结构。不能在 Control 中添加组件,因为 Controls 集合只接受基本类型为 Control 的对象。
组件不能包含控件。
【讨论】:
组件基本上是一个类(它可以是 dll、Activex 对象)。
而另一方面,control 是提供用户界面功能的组件。
【讨论】: