创建自定义用户控件:基础 - II






1.80/5 (7投票s)
2007年10月19日
4分钟阅读

16000
创建自定义用户控件:基础 - II
引言
描述了用户控件的类别,它们由什么组成?以及公开用户控件的属性。
背景
用户控件的类别
根据控件绘制自身的方式,自定义控件分为三类
• 非自定义绘制:这些控件使用其他控件的用户界面来
覆盖自己的界面。例如,工具栏控件使用工具栏按钮来
覆盖其界面。
• 自定义绘制:这些控件根据输入数据、鼠标和键盘事件、焦点和其他变量自行绘制其用户界面。
输入数据、鼠标和键盘事件、焦点和其他变量。例如,一个
饼图控件是自定义绘制的。
• 混合:混合控件使用上述两种方法来覆盖其用户界面。
例如,带有滚动条的图表控件就属于这一类。
自定义控件由什么组成?
要实现自定义控件,我们需要了解它们及其组件部分如何工作。
我们必须了解控件的可见和不可见部分。自定义控件由
两个主要部分组成。第一部分是“黑匣子”。这部分是控件私有的,用于存放
构建控件内部功能的私有数据成员和方法。第二
部分是控件的公共接口。该接口由公共属性、事件和
方法组成。它们公开了控件的功能,允许使用控件的代码
以编程方式操作控件。
从技术上讲,控件是派生自基类 System.Windows.Forms.Control 的类。它
包含任何控件的基本功能,例如处理鼠标事件的功能,
键盘事件、焦点和绘制事件、预设样式和属性。最基本的定义
自定义控件如下所示
public class MyControl:Control
{
}
我们必须首先学习 Control 类的基本组件。了解并理解这些组件是什么以及如何使用它们来实现控件功能非常重要,因为它们将存在于我们创建的任何控件中。
知道并理解这些组件是什么,以及如何使用它们来实现控件
功能,因为它们将存在于我们创建的任何控件中。这些组件构成了
控件类的实体,并代表您在自定义控件中实现的更改,在
您从基 Control 类继承的基本功能之上。换句话说,我们从
Control 类继承了一些基本功能,所有控件通用,我们通过添加这些组件来构建我们控件的自定义功能。
我们的控件通过添加这些组件。我们也可以修改现有控件,以添加一个
额外功能。
私有字段
私有字段,顾名思义,是不能从外部访问的字段。当
构建自定义控件时,“外部”是指使用此控件的应用程序(它也可以是
使用您的控件的另一个自定义控件)。通常,对于控件的每个公共属性,
至少有一个私有字段存储其公开的数据。
良好的编程实践是声明私有类字段,然后通过
公共属性(接下来解释)公开它们。
下面是一个代码片段,展示了一个名为 MyControl 的控件的定义,它有四个
私有字段
public class MyControl : Control
{
private Color backgroundColor;
private Color foregroundColor;
private int itemcount;
private Brush backBrush;
}
属性
当您在 Visual C# Express 或 Visual Studio 的表单设计器中选择一个控件时,您可以
在“属性”窗口中查看控件的属性。属性是与
类或对象相关联的属性。例如,一个普通的按钮有很多属性:名称、文本、字体、大小,以及
许多其他属性。所有这些普通按钮公开的属性都显示在“属性”窗口中
属性是任何控件的关键特性,因为它们公开了控件的设置和数据。
公共属性代表用户与控件设置交互的方式,通过控制
用户获取或设置存储设置和数据的私有字段的方式。
属性包含在它们的 get 和 set 访问器中过滤读取或设置数据的代码。
这些访问器通常代表属性读取或设置私有成员的值,这些私有成员包含实际数据。
代表属性。通过仅定义属性的 get 访问器,您可以使其变为只读,
通过仅定义 set 访问器,您可以使其变为只写。
属性的默认结构是
public "type" "PropertyName"
{
get
{
return "fieldName";
}
set
{
"fieldName" = value;
}
}
这里,“type”表示属性的数据类型(例如 string),“PropertyName”是
属性的名称(例如 BackgroundColor),而“fieldName”是存储
属性数据的私有字段。请注意,属性本身不包含任何数据,并且可以自由设置或返回
其 get 和 set 访问器中的任何值。
自定义控件由什么组成?
私有字段
属性