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

如果要创建一个自定义控件,首先新建一个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. bazel使用汇总

    最近重构代码之后,打算在本地用bazel来作项目构建.主要是因为brpc已经支持了bazel,所以在此之前料想会简单许多. 安装比较简单,centos直接用yum就行.按照这个指示: https:// ...

  2. 51nod1394 差和问题 值域线段树

    水题..... 插入一个值$v$时,对于$[0, v - 1]$和$[v + 1, inf]$的点分别考虑就行了 删除相当于减去插入的贡献 用动态开点线段树卡点常数就过去了 复杂度$O(n \log ...

  3. 快速傅里叶变换(FFT)相关内容汇总

    (原稿:https://paste.ubuntu.com/p/yJNsn3xPt8/) 快速傅里叶变换,是求两个多项式卷积的算法,其时间复杂度为$O(n\log n)$,优于普通卷积求法,且根据有关证 ...

  4. 【最小路径覆盖】BZOJ2150-部落战争

    [题目大意] 给出一张图,'*'表示不能走的障碍.已知每只军队可以按照r*c的方向行军,且军队与军队之间路径不能交叉.问占据全部'.'最少要多少支军队? [思路] 首先注意题意中有说“军队只能往下走” ...

  5. 91网漏洞打包#越权+爆破+存储xss可打cookie

    漏洞一.主站存在登录口爆破 抓包,爆破一下 爆破成功 漏洞二.检测app时一处存储xss 在app登录后 我要提问那里插入xss 然后弹窗 可以打到cookie 漏洞三.app个人资料处平行越权可查看 ...

  6. bzoj 4780: [Usaco2017 Open]Modern Art 2

    4780: [Usaco2017 Open]Modern Art 2 Time Limit: 10 Sec  Memory Limit: 128 MB Description Having becom ...

  7. nginx 访问第三方服务(1)

    nginx提供了两种全异步方式来与第三方服务通信,分别是upstream和subrequest. upstream:nginx为代理服务器,作消息透传.将第三方服务的内容原封不动的返回给用户. sub ...

  8. java类中属性的加载顺序,以及内存分配情况介绍

    看下面例子及说明: /** 假如有外部类调用了该类,代码为:new StaticTest(); 那么下面是类属性的加载顺序 */ public class StaticTest{ public int ...

  9. 详解Java中的clone方法 -- 原型模式 及源码

    http://www.cnblogs.com/cq-home/p/6431426.html http://blog.csdn.net/zhangjg_blog/article/details/1836 ...

  10. 强悍的javascript手势库

    /** * Toucher * git:https://github.com/cometwo/Toucher-1 */ "use strict"; (function (root, ...