控件是组件的一个主要样本,,控件派生于组件,控件都是组件,但组件未必是控件。
网上资料:
1、Component在Run Time时不能呈现UI,而Control可以在Run Time时呈现UI(但是vs 2005里的asp.net中的SqlDataSource是Control,但是它不能呈现UI)。
2、Component是贴在容器Container上的,而Control则是贴在Windows Form或者Web Form上的。
举例来说,SqlCommand是个Component,DataGrid则是一个Control。
那我们又如何来开发一个Component呢?其实很简单,只要我们把一个类从System.ComponentModel.Component(下面简写Component)继承下来即可。
namespace Components
{
public class Component1 : Component
{
private int _id;
private string _name;
private DateTime _createDateTime;
// 在Property窗口中为灰色显示。
public int Id
{
get { return _id; }
}
// 在Property窗口中可以设置值。
public string name
{
get { return _name; }
set { _name = value; }
}
// 在Property窗口中不可见。
public DateTime CreateDateTime
{
set { _createDateTime = value; }
}
}
}
编译完成后,其Property的效果如下: