介紹下我的工作,公司主要是開發第三方組件(Component)、控件(Control),我看園子裡的朋友 們寫這方面不是很多(也許是我沒有看到),所以打算寫個關於組件開發的系列文章。
首先介紹基本知識,有很多的朋友搞不清楚Component與Control之間的區別,比較簡單形象的區別有 下面兩點:
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)繼承下來即可
。
下面我們就來編寫一個簡單的Component,打開vs 2005添加一個新的ClassLibrary工程,名稱為 Components,更改Class1的代碼如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;
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的效果如下:
請注意Id是灰色,不能對其進行設值,而CreateDateTime在Property窗口中沒有顯示。