-
vb.net教程之重载Windows控件
重载Windows控件
在vb.net中,用户可以根据一个已经存在的控件继承出一个新的Windows控件,假设现在需要一种Text控件,当用tab键移到该控件时,整个Text中的内容都被highlight了,在vb 6.0中,这可以通过编写一个新的Dll动态库,但是Textbox控件在工具箱中被屏蔽掉了,并且失去了Textbox的一些有用的事件。而在vb 7.0中则可以通过继承Textbox类而派生出一个新的类。
下面举一个例子,通过Windows设计环境,建立一个窗体,在这个窗体中有两个Textbox,通过在"Project|Add User Control"菜单给工程加入一个名为"HitextBox.vb"的对象,使这个控件继承TextBox的属性,而不是要自定义一个全新的控件,如下:
Public class HtextBox
Inherits Textbox
下面先编译一下整个工程,新加入的HtextBox控件将会出现在左边的工具栏的底部。用户可以在建立的任何一个Windows窗体中建立一个HtextBox类对象。
在类的代码中,插入如下代码以实现highlight的功能:当你用Tab键移到Textbox时,Textbox的全部内容变为hightlight。
Public class HttextBox
Inherits Textbox
Public Sub New
Mybase.New
'Add Event event handler
AddHandler Enter,_
New System.EventHandler(AddressOf_
Me.Ht_Enter)
End Sub
'----------------
'Enter event handler is inside the class
Protected Sub Ht_Enter(Byval sender as Object,_
Byval e as System.EventArgs)
Me.selectionStart=0
Me.selectionLength=Me.text.length
End Sub
End Class
这就是所有的过程,通过添加大概10行代码就做出了一个继承Windows控件派生出来的控件。
在vb.net中,用户可以根据一个已经存在的控件继承出一个新的Windows控件,假设现在需要一种Text控件,当用tab键移到该控件时,整个Text中的内容都被highlight了,在vb 6.0中,这可以通过编写一个新的Dll动态库,但是Textbox控件在工具箱中被屏蔽掉了,并且失去了Textbox的一些有用的事件。而在vb 7.0中则可以通过继承Textbox类而派生出一个新的类。
下面举一个例子,通过Windows设计环境,建立一个窗体,在这个窗体中有两个Textbox,通过在"Project|Add User Control"菜单给工程加入一个名为"HitextBox.vb"的对象,使这个控件继承TextBox的属性,而不是要自定义一个全新的控件,如下:
Public class HtextBox
Inherits Textbox
下面先编译一下整个工程,新加入的HtextBox控件将会出现在左边的工具栏的底部。用户可以在建立的任何一个Windows窗体中建立一个HtextBox类对象。
在类的代码中,插入如下代码以实现highlight的功能:当你用Tab键移到Textbox时,Textbox的全部内容变为hightlight。
Public class HttextBox
Inherits Textbox
Public Sub New
Mybase.New
'Add Event event handler
AddHandler Enter,_
New System.EventHandler(AddressOf_
Me.Ht_Enter)
End Sub
'----------------
'Enter event handler is inside the class
Protected Sub Ht_Enter(Byval sender as Object,_
Byval e as System.EventArgs)
Me.selectionStart=0
Me.selectionLength=Me.text.length
End Sub
End Class
这就是所有的过程,通过添加大概10行代码就做出了一个继承Windows控件派生出来的控件。
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比