在Windows窗体应用程序中,System.Windows.Forms
库中的控件具有名为Site
的属性。
这个房产在控制中的职责是什么?
答案 0 :(得分:1)
Site
属性继承自Component
,非常类似Parent
的{{1}}属性。
Control
和Parent
之间的主要区别在于Site
的值只能是Parent
,而Control
可能具有非可视性分配给它的容器。
Site
基类用于Winforms设计器工具箱中的那些非可视化工具。例如,Component
可以拖到System.Windows.Forms.Timer
上。 PropertyGrid可用于设置其属性并分配事件处理程序,所有这些都来自设计人员,而无需编写代码行。
Form
类背后的想法是为软件库提供API,以利用IDE(如Visual Studio)的设计时功能。它适用于RAD (Rapid Application Development)概念,其中通用或通用组件将利用API。例如,在属性网格底部的expose extra information about a property,甚至创建完整的custom editors。
如果您想深入了解内部,可以查看Programming with Components,或者如果您想快速浏览,我猜Class vs. Component vs. Control可能是一个很好的起点。
答案 1 :(得分:0)
站点将Component绑定到Container并启用它们之间的通信,并为容器提供管理其组件的方法。 站点还可以用作特定于容器的每个组件信息的存储库,例如组件名称。有关组件的更多信息,请参阅Programming with Components。
对实施者的说明
要成为一个站点,类必须实现ISite接口。
参考: https://msdn.microsoft.com/en-us/library/system.componentmodel.isite.aspx