2-16  用户自定义控件<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

u 本节学习目标:

n 了解用户自定义控件的基本类型

n  学习如何建立用户自定义控件并引用它

    <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />2-16-1 简介

除了使用 VS2005 提供的与定义控件之外, C# 还允许用户进行控件的自行定义。使用 .NET FormWork 可以开始和实现一些新的控件,而所有的控件无论是系统自带的抑或是用户自定义的,都来自 control 类。此处先对 control 类进行介绍。 control 类是 windows 窗体控件的基类,提供了 windows 窗体控件中进行可视化显示所需的所有基础结构。由于 control 类提供了很多基础结构,使得开发用户自定义的控件变得相对简单。通常情况下,开发人员自行编写的控件可以分为三类:

n 复合控件:组合现有的控件实现功能;

n 扩展控件;扩展基本控件的功能;

n 自定义控件;从头开始创建一个全新的控件

   
在下列情况下,可以编写自定义控件:

n 想要提供控件的自定义图形化表示形式

n 需要实现无法从标准控件获取的自定义功能

    2-16-2 用户自定义控件实践操作

1. <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />案例学习:如何建立用户自定义控件并引用它

1 )定义一个用户自定义控件需要在解决方案资源管理器下右键鼠标,在弹出的快捷菜单之中选择添加,添加一个“用户控件”,如图 2-49 所示:

2-49  添加用户控件
2 )在打开的“用户控件”界面中像建立普通窗体应用一样从工具箱之中拖放一个 label 标签和一个 Button 控件。如图 2-50 所示

2-50  拖放一个label标签和一个Button控件
双击“改变次数”按钮,进入鼠标单击事件的编码如下:

    public partial class UserControl1 : UserControl

    {

        public UserControl1()

        {

            InitializeComponent();

        }

        int i = 0;

        private void button1_Click(object sender, EventArgs e)

        {

            i++;

            label1.Text = i.ToString();

        }

    }

同时运行一下这个用户自定义控件,则该控件将自动在工具箱中以组件的形式出现。然后新建一个窗体,打开工具箱将生成的组件拖放到窗体上面就可以直接使用了。如图 2-51 所示。

2-51  建立并使用组件的基本步骤

2-17  本章小结

n  Winform单选按钮控件允许用户进行设置

n  Winform的图片框控件允许用户在窗体上添加和显示位图、元文件、JPEGGIF PNG 等格式的图形

n  Winform的选项卡控件将类似的功能集中在一起,放在一个对话框或窗口中

n  进度条控件用于指示操作的进度,并显示排列在水平条中一定数目的矩形,通常通过在程序中设置其Value值来显示任务完成的百分比

n  Timer 控件为开发人员提供了一种在指定时刻或指定的周期执行任务的控件

n  Timer 控件的 Interval 属性表示时钟的周期,单位为毫秒

n  ListView 控件用于以特定样式或视图类型显示列表项,其Items集合对象提供了对其列表项的操作

n  TreeView 控件用于以节点形式显示文本或数据,这些节点按层次结构顺序排列

n  TreeView控件的Nodes集合对象提供了对树型节点的操作

 

课 后 练 习

1、  如何使得RadioButton单选按钮组中只选择一个按钮?

2、  设计一个ToolBar工具条,加载ImageList 控件里面的图片信息。

3、  StatusStrip 控件主要作用是什么?StatusStrip 控件可以加载哪些其他控件在里面呢?

4、  通过Timer控件控制一张图片自上而下的循环运动,编写出相关代码。

5、  定义用户自定义控件对于项目开发的实际意义是什么?