- 作者:zhaozj
- 发表时间:2020-12-23 10:56
- 来源:未知
原创文章.作者asusharp(拂尘之手),如需转摘,请注明作者.
在开始组件的讲解前我们得先明白几个概念的区别.那就是组件(Component),控件(Control),容器(Container)和场所(Site).
1.组件(Component)
在Microsoft.Net Frameworks中.类是组件的实现形式。在面向对象程序设计中,所有具有功能的代码都应该封装在某个单元模块中,组件是类也就成理所当然的事情。但组件不同于其他的类。类为了变成组件,必须实现System.ComponentModel.IComponent接口。并提供一个没有参数的构造方法。如果一个类继承自实现了这个接口的类,那它也将成为组件。此外,组件可以被包含和安置在容器中,当它被安置在容器中时,它可以通过容器提供的场所和容器进行交互。
2.控件(Control)
控件是具有用户接口(UI)的组件。在.net Framework中,只有继承自System.Windows.Forms.Control或System.Web.UI.Control的类才是控件,这两个类都实现了System.ComponentModel.IComponent接口。System.Windows.Forms.Control本身提供了UI功能,而System.Web.UI.Control提供了可以方便地加入UI的框架。
3.容器(Container)
容器用来“盛放”组件,一个容器可以包含一个或多个组件,这些组件称为容器的子组件。容器也是类,一个类要成为容器,必须实现System.ComponentModel.IContainer接口,并提供一个没有参数的构造方法,也可以继承自实现了这个接口的类。
4.场所(Site)
场所由容器提供,容器使用场所管理子组件,并和它们交互作用。通常情况下,容器和场所在同一个单元模块中实现。一个类要成为场所,必须实现System.ComponentModel.ISite接口。
当在VS.NET中开发Windows Forms或Web Forms组件和控件时,没有必要实现容器和场所,因为Windows Forms Designer和Web Forms Designer就是Windows Forms和Web Forms控件的容器。
组件是独立的代码模块,那其他代码或组件(比如容器)如何使用组件呢?又如何与组件进行交互呢?这就涉及到具体编程技术问题。下一讲将介绍和组件设计有关的程序设计技术。包括:属性,事件,Delegate,特性(Attribute)及授权。请关注。(完成目期:2004.08.17)