前面介绍了微软的控件,也介绍了几个第三方控件,那么这些控件是如何做出来的?即便我们自己不做控件,也至少要理解控件的原理。

如果要创建一个自定义控件,首先新建一个C#下面的Windows窗体控件库

 

最简单的方法只要拖一个label,放一个定时器,定时器每隔一秒获取并显示当前系统时间即可(F5可以运行测试看到效果)

 

那么还是跟之前一样,把这个生成的DLL拖放到工具箱就可以给新的项目使用了

 

稍微复杂一点的情况,我们也改写一下官方的RichTextBox,让他可以插入图像,导入RTF文件。首先还是新建一个自定义控件UserControl2,注意他默认继承自UserControl,我们改成继承自RichTextBox

 

为这个控件添加两个额外功能(可以看到都是0个引用,都是0个引用就是说在当前的程序里都还没有用到这个方法),具体导入RTF,插入图片为什么这样写就可以,其实你一直在用RichTextBox的时候就已经实现了这些功能,只不过现在你把原有的RichTextBox再复合一些常用功能,让控件更好用而已(我们目前还不是真正的从头开始写一个控件,而只是稍微改进一下原有控件,所以我们都还是用了原有空间的LoadFile,Controls.Add这些方法)

 

注意这个自定义控件已经不需要UserControl的什么属性和方法了,所以在InitializeComponet的时候原有的定义属性和方法的都删除干净(如果你切换到设计视图,只能看到下面这句话,这个是正常的,因为继承自UserControl是有画面的,自定义类没有,或者除非你再自己加上去)

 

完了之后点击生成,重新生成解决方案,得到新的DLL(如果F5运行报错也不用管它)

 

控件具备了这两个方法之后,就可以生成,拖放到新的项目,然后随时按钮点击之后可以执行控件自身的导入方法,非常高效

 

可以导入图像,包括GIF

 

也可以导入整个文档(RTF格式)

 

总结:本节课程内容较多,但是实际上不需要都立即掌握,真正用到的时候再想怎么用,目前只要了解即可,即便是了解的程序,读者需要自己做测试:

1 微软自带的各种控件的功能测试,了解常用的属性方法,尤其是基本的label,button,textbox这些控件,以后会一直用到

2 第三方控件的简单使用,了解第三方控件相比于微软自带控件的额外属性和方法(如果需要能够快速使用第三方控件美化界面)

3 第三方控件的简单编写,了解第三方控件的设计原理

 

更多教学视频和资料下载,欢迎关注以下信息:

我的优酷空间:

http://i.youku.com/acetaohai123

 

我的在线论坛:

http://csrobot.gz01.bdysite.com/

 

问题交流:

QQ:910358960

邮箱:acetaohai123@163.com

 

 

C#基础视频教程3.3 常见控件类型和使用方法的更多相关文章

  1. C#基础视频教程3.1 常见控件类型和使用方法

    可以从左侧的工具箱中找到常见的控件(你要在Form1这种窗体上)   为了方便你也可以把工具箱整个拖过去,这样从上到下控件都给你排好了   对于按钮来说,最常见的就是他的背景颜色,文字,字体,还有是否 ...

  2. C#基础视频教程3.2 常见控件类型和使用方法

    这一部分我们介绍如何使用第三方的控件,我们前面一节介绍了使用微软提供的官方控件,比较中规中矩,而且也不用担心稳定性.但是很多时候我们还是会希望用第三方的控件让自己的软件更美观,更独特. 就单纯的按钮, ...

  3. Android 中常见控件的介绍和使用

    1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.la ...

  4. SharePoint2010沙盒解决方案基础开发——关于TreeView树形控件读取列表数据(树形导航)的webpart开发及问题

    转:http://blog.csdn.net/miragesky2049/article/details/7204882 SharePoint2010沙盒解决方案基础开发--关于TreeView树形控 ...

  5. C#中WindowsForm常见控件的运用

    C#中WindowsForm常见控件的运用 -- 1.button(曹操,贡天子以令不臣): 属性;text:我们经常可以看见将按钮命名为“登入”,在其属性面板里面编辑text即可:如下图:      ...

  6. C#常见控件与SQL Sever数据库交互

    C#常见控件与SQL Sever数据库交互 下拉框(ComboBox)与数据库绑定 首先,我们采用DataSet作为临时的数据库,这样会比较好 那么,我们先创建两个成员(对象) string sqlc ...

  7. C#常用控件的属性以及方法(转载)

    -----以前看别人的,保存了下来,但是忘了源处,望见谅. C#常用控件属性及方法介绍 目录 1.窗体(Form) 2.Label (标签)控件 3.TextBox(文本框)控件 4.RichText ...

  8. 基于DevExpress开发的GridView如何实现一列显示不同的控件类型

    在很多DevExpress的使用例子里面,我们可以看到,基于GridView实现的不同控件展示的时候,每一列的控件类型都是一样的,如果我要某一列的一行让用户可以从下列列表选择选项,而其他行不可选择,那 ...

  9. [转] WinForm实现移除控件某个事件的方法

    原文 WinForm实现移除控件某个事件的方法 本文实例讲述了WinForm实现移除控件某个事件的方法,供大家参考借鉴一下.具体功能代码如下: 主要功能部分代码如下: /// <summary& ...

随机推荐

  1. java学习助手

    感谢大家使用Java学习助手! 打一开始,这应用就是全开源,希望大家自觉遵循开源协议,还Android开发一片净土(国内的情况你懂的) 接下来都不会更频繁更新文章,大家更应该把注意力放在基础的模块那里 ...

  2. [CF1043G]Speckled Band

    题意:给定字符串$s_{1\cdots n}$,多次询问它的一个子串$s_{l\cdots r}$能否被切割成多个部分,使得至少有一个部分出现两次,且切出来的本质不同字符串数最少 做一道题学了两个算法 ...

  3. Android演示Stack(课下作业)

    Demand 之前活动中误传成别的截图,故在此补充博客 1.使用自己实现的栈构建Android程序,提供用于栈的一个puh按钮和pop按钮,在文本域接收一个字符串作为push的输入,文本区将显示每个操 ...

  4. 如何使用Eclipse插件—Easy Explorer

    Easy Explorer是一个Eclipse插件,主要用于快速浏览项目文件的目录,实用性比较强. 使用方法如下: 1.下载Easy Explorer,从此处下载EasyExplorer:http:/ ...

  5. [AHOI2009]同类分布

    题目大意: 问在区间[l,r]内的正整数中,有多少数能被其个位数字之和整除. 思路: 数位DP. 极端情况下,每一位都是9,所以各位数字之和不超过9*18.(为了方便这里用了9*19) f[i][j] ...

  6. 【BZOJ】4709: [Jsoi2011]柠檬

    4709: [Jsoi2011]柠檬 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 779  Solved: 310[Submit][Status][ ...

  7. bzoj 1086 树分块

    将树分成一些块,做法见vfleaking博客. /************************************************************** Problem: 108 ...

  8. VK Cup 2016 - Round 1 (Div. 2 Edition) C. Bear and Forgotten Tree 3 构造

    C. Bear and Forgotten Tree 3 题目连接: http://www.codeforces.com/contest/658/problem/C Description A tre ...

  9. css中!important的优先级问题

    css中!important的优先级在主页面中写>在外部引用的css文件 之前我一直以为css的样式不管写在哪里只要加上!important那么它的优先级就是最高的,事实上并不是这样的,尤其在动 ...

  10. 典型案例收集-使用OpenVPN连通多个机房内网(转)(静态路由)

    说明: 1.这篇文章主要是使用静态路由表实现的多个机房通过VPN连接后的子网机房互通. 2.OpenVPN使用的是桥接模式(server-bridge和dev tap),这个是关键点,只有这样设置才可 ...