-
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控件派生出来的控件。
栏目列表
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比