我对C#的理解仅限于使用层面,想看深入式的不在这里。
啰里八嗦的前言
当年,老师在我要求做一个组件的时候我在网上查了很久资料,出来蹦的不外乎的英文某某培训之类,进去连免费课程都不给看一节。但是黄天不负苦心人系列,终于找到一些珍贵资料,也让我对C#组件有了一点零星的认识。接下来让我分享一下这点知识。
首先,先普及一下知识。
控件分为:复合控件,扩展控件,组件。
复合控件:现有控件进行组合,形成新控件;扩展控件:在现有控件基础上派生出一个新的控件,增加新的或修改原有功能 ..NET组件:就像是定时器控件一样,在开发界面上没有实体的控件;
仔细观察可以发现,编写用户控件建立的“窗口窗体控件库”程序中,设计控件默认继承了用户控件类。
其实,只要写的类库是UserControl或者Component,就可以在Toolbox里面显示,被拖拽使用。区别在于UserControl是有界面的类库,组件是没有界面的,显示在设计界面下方(例如:Timer Control显示位置)。
这段不想看的可以不看:
从类继承方向解释,.NET中的组件,控件和用户控件。
其实从字面上已经可以理解各自的不同了但是具体关系其实是从类的继承上来区别的一般控件派生于:。控制类,所以从此类派生出的称之为控件一般组件派生于:组件类,所以从此类派生出的称之为组件。用户控件派生于:用户控件类,所以从该类派生出的称之为用户控件(我们之所以这么叫其实是因为英文翻译上的习惯)他们之间的关系主要是:用户控件继承控制继承元器件。
但是具体在用时有什么区别呢这主要是从设计的角度去考虑的?。
组件类和一般类的区别:我们总是习惯于面向对象的设计方式而对象则是由类实例化而来。我们强调万事万物皆对象,把对象看作设计的基本单元。
所谓组件其实是面向组件的设计方式,我们把组件作为设计的基本单元。组件即为程序的组成部分。其实是构成程序的一个最基本的单元。一个组件其实可以包括多个类。这与传统的面向对象的设计方式有点区别。算是更高一层的封装
而控件和用户控件其实是组件按照具体的用途的一种划分,它们都是组件。控件的突出特点就是交互式组件,而用户控件则是将 些特定的组件或控件复合从而实现特定的业务功能。所以用户控件往往是从业务角度来设计的。
一个简单的Component
第一步:新建一个“类库”工程,名称为Components;
第二步:更改Class1.cs 代码如下:
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; }
}
}
}
第三步:编译,或者点击“生成”。生成的组件是以.dll文件的形式存在的。
第四步:新建一个Winform窗体应用程序,把扩展控件显示在工具箱中。
第五步:将控件放置界面上,右键,查看属性,效果如下:
|
这个简单的组件就完成了,简单吧~~~