博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2-16 用户自定义控件
阅读量:6805 次
发布时间:2019-06-26

本文共 1694 字,大约阅读时间需要 5 分钟。

2-16  用户自定义控件

u
本节学习目标:
n
了解用户自定义控件的基本类型
n 
学习如何建立用户自定义控件并引用它

    2-16-1 简介

除了使用 VS2005
提供的与定义控件之外, C#
还允许用户进行控件的自行定义。使用 .NET FormWork
可以开始和实现一些新的控件,而所有的控件无论是系统自带的抑或是用户自定义的,都来自 control
类。此处先对 control
类进行介绍。 control
类是 windows
窗体控件的基类,提供了 windows
窗体控件中进行可视化显示所需的所有基础结构。由于 control
类提供了很多基础结构,使得开发用户自定义的控件变得相对简单。通常情况下,开发人员自行编写的控件可以分为三类:
n
复合控件:组合现有的控件实现功能;
n
扩展控件;扩展基本控件的功能;
n
自定义控件;从头开始创建一个全新的控件
   
在下列情况下,可以编写自定义控件:
n
想要提供控件的自定义图形化表示形式
n
需要实现无法从标准控件获取的自定义功能

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

1. 案例学习:如何建立用户自定义控件并引用它

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、  
定义用户自定义控件对于项目开发的实际意义是什么?
本文转自 qianshao 51CTO博客,原文链接:http://blog.51cto.com/qianshao/208684,如需转载请自行联系原作者
你可能感兴趣的文章
一元操作符“++”,“- ” 之强制转换数值
查看>>
Python 保存数据的方法(4种方法)
查看>>
[POJ 2728]Desert King(0-1分数规划/最优比率生成树)
查看>>
go 操作mongodb
查看>>
复杂网络上的动力学过程
查看>>
使用tcpdump验证tcp三次握手
查看>>
Java 复习
查看>>
关于iFrame高度小于父元素DIv3~5px的解决方案
查看>>
【免费报名】亚洲诚信&看雪学院:“走进企业看安全”技术分享沙龙等你来侃~...
查看>>
Flutter学习之Dart语言基础(内置类型)
查看>>
OpenGL 3D矩阵的位移、缩放变换
查看>>
kotlin笔记--基础篇
查看>>
传统模式下WebService与WebAPI的相同与不同
查看>>
mysql实现首字母从A-Z排序
查看>>
[转]C++11 随机数学习
查看>>
谈谈对Spring IOC(控制反转)的理解--转
查看>>
spring注解开发AnnotationConfigApplicationContext的使用
查看>>
9.redis安全
查看>>
2018焦作区域赛E. Resistors in Parallel
查看>>
Scrum立会报告+燃尽图(十一月二十二日总第三十次):加强回归测试
查看>>