- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
简单易学 图文并茂
VB.Net 创作控件
自己创作控件,分三种主要的形式:复合控件,扩展控件,和自定义控件。
复合控件,顾名思义就是把现有的进行组合,让它们协作形成功能强大的新控件;
扩展控件,是以某一现有控件为基础,让它具有新的功能;自定义控件,则是由作者完
全操刀,建立一个全新的控件。
可以用一个比喻来理解这三种形式的区别:复合控件,就是你买好各个电脑配件,
组装成一台电脑;扩展控件,就是把显卡上的零件更换几个,让它能力比标准产品更强
大;自定义控件,就是自己制作一个名为“生人勿近”的硬件,他可以通过 PCI 插槽,
安装到电脑上,一旦生人走近,它能识别并发出狗叫„„
综上,三种形式中,复合控件相对来说是最简单的;扩展控件在其次;自定义控件
最难。通常,我们使用前两种技术,就能创作出很复杂的控件了。
范例1:
Excel 的单元格Cell,当它没有焦点的时候,就是一个TextBlock ,当它获得焦点,
可以编辑的时候,就是一个Text Box 框。这样一个控件,将是我们今后制作表格控件的
基础。范例1 中,我们会用到两种技术,复合控件和扩展控件。
在 VS 中,要进行如下的工作(推荐使用 VS2010)
1. 新建一个Solution ,名为Cell ;
2. 添加一个名为“TestAPP ”的WFP 项目。我们用他来测试成果;
3. 添加一个名为“Ctrl_Cell ”的WFP 用户控件项目。
然后,我们需要一个TextBlock,和一个TextBox 控件,这是我们的演员。
考虑一下它们应该怎样演出,才能达到我们需要的效果:
平时这个控件,应该表现出TextBlock 的外观;
当我们点击这个Label 时,隐藏的TextBox 控件跑到TextBlock 的前面,并且它显示的值
和TextBlock 一样。同时,这个值是可以编辑的;
编辑完TextBox 的内容,按下Enter,或者点击屏幕上的其他控件,让TextBox 失去焦点,
TextBox 消失。TextBlock 跑到前面来,并且显示编辑后的内容。
接着,需要考虑一下这个控件的属性和事件。
1. 它应该有一个Value 属性,Label 显示这个Value ;同时Text 也显示这个Value ;我们编
辑的时候,也是针对这个Value 。
2. 点击TextBlock 时,会发生一系列的变化。所以我们要关注TextBlock 的MouseDown 事
件。
3. 编辑TextBox,按下Enter 后,或者TextBox 失去焦点,会发生一系列的变化。所以我们
要关注TextBox 接受了Enter 键这个输入,同时也要关注它的LostFocus 事件。
关于“TextBox 控件接受到一个Enter 输入”的问题。基础的TextBox 控件是没有这个功
能的,而我们今后要用到的地方很多。所以我考虑扩展一下 TextBox 的功能,制作一个
Ex_TextBox。新的控件在用户按下Enter 的时候,产生一个getEnterKey 的事件,这样使用者
就能处理这条消息了。
扩展现有控件,直接在原有的 TextBox 上继承,把一个判断键盘输入值的程序
afterGetEnter 绑定到Keydown 事件下。
在Ctrol_Cell 项目下,添加一个新的类,名为Ex_TextBox。
*******************代码********************
Public Class Ex_TextBox
Inherits TextBox
这个控件扩展了现有TextBox 的功能。
当用户输入Enter 的时候,引发一个getEnterKey 事件。
这样,控件的使用者,就能在输入Enter 的时候,得到一个信息。
扩展控件功能,属于创作控件的第二种技术。
Public Event getEnterKey As EventHandler
Priv
原创力文档


文档评论(0)