什么是“Control.Site”属性?

时间:2015-05-19 06:07:27

标签: c# winforms controls

在Windows窗体应用程序中,System.Windows.Forms库中的控件具有名为Site的属性。 这个房产在控制中的职责是什么?

2 个答案:

答案 0 :(得分:1)

Site属性继承自Component,非常类似Parent的{​​{1}}属性。

ControlParent之间的主要区别在于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