用Visual Basic6类模块打造控件
发表于:2007-06-21来源:作者:点击数:
标签:
下一页 1 2 3 4 VB6因为简单易用,受到很多朋友的喜欢。可是也有人说它功能简单,没有给 开发 者提供足够的发挥余地。比如不能方便地继承现有控件而派生出自己的控件。(什么?写ActiveX控件?太麻烦了吧。要花大量时间在接口的设计和实现上,而且你不想让你
下一页 1 2 3 4
|
VB6因为简单易用,受到很多朋友的喜欢。可是也有人说它功能简单,没有给开发者提供足够的发挥余地。比如不能方便地继承现有控件而派生出自己的控件。(什么?写ActiveX控件?太麻烦了吧。要花大量时间在接口的设计和实现上,而且你不想让你的软件发布时带一堆OCX控件吧?)其实还是有办法的,我们可以利用VB6里的类模块实现对控件的特殊控制和事件响应。本文介绍使用类模块把普通的Label控件变成窗体动态分割条。
 图1 带分隔条的窗体 | 初识类模块
类模块其实是一个对象的定义,封装了一些属性和方法,使用前需要生成一个实例:
clearcase/" target="_blank" >cc66 width="90%" align=center bgColor=#dadacf border=1>
’生成类模块clsTest的一个实例test Dim test as new clsTest | 然后可以使用类模块的方法:
| test.DoSomthing() ’调用test的方法DoSomthing() | 一个简单的例子
做一个鼠标移上去后自动获得焦点并将内容选中的“聪明”编辑框。
1、新建一工程,在[工程]菜单中,选择[添加类模块],添加一个类模块,更改其名称为clsTest。
2、进入类模块编辑界面(如图2)。
 图2 编辑类模块 | 在左边的下拉框中选择“通用”,键入以下代码:
’定义一个带事件的文本框变量 Dim WithEvents MyText As TextBox ’保存文本框是否获得焦点的布尔变量 Dim bSetted As Boolean ’自己定义的类模块的方法,传入参数是文本框。 Public Sub BindText(t As TextBox) ’将文本框变量设置为传入的文本框,即是对传入文本框的引用 Set MyText = t End Sub | 3、在左边的下拉框中选择“Class”,在右边下拉框中选择Initialize,这是类模块的初始化事件,可以在这里写自己的初始化代码。VB会自动为我们添加一个事件子程序。我们要做的就是在其中添上自己的代码。其实这一步略过也没什么影响,不过对变量进行初始化是一个好习惯。
Private Sub Class_Initialize() ’将文本框变量初始化Nothing Set MyText = Nothing bSetted = False End Sub | 4、在左边的下拉框中选择“MyText”,注意到了吗,它就是我们在第2步定义的带事件的文本框变量。VB把它加进来了,再到右边下拉框中点击下拉按钮,呵呵,看到什么了?原来是我们熟悉的TextBox的所有事件!只不过这里的MyText文本框并不实际存在,只是一个代 号,等着你给它指定一个实际的文本框呢。
添加事件响应代码,这就不用我说了吧。
Private Sub MyText_GotFocus() bSetted = True End Sub Private Sub MyText_LostFocus() bSetted = False End Sub ’鼠标在控件上移动时,如果还没设置焦点,将它设为焦点, ’并将内容选中 Private Sub MyText_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (Not bSetted) Then MyText.SetFocus MyText.SelStart = 0 MyText.SelLength = 9999 End If End Sub | 到此,类模块宣告完毕,保存它(.cls文件)。
5、下面就是类模块的使用,非常简单。现在一个窗体上放3 个TextBox控件,名称分别为Text1、Text2、Text3。
在通用部分键入以下代码:
’定义类模块的实例,因为有3个TextBox所以定义3个实例 Dim t1 As New clsTest Dim t2 As New clsTest Dim t3 As New clsTest
| 在窗体的Load事件中键入以下代码:
Private Sub Form_Load() ’调用类模块的方法BindText 参数是窗体上的TextBox们 t1.BindText Text1 t2.BindText Text2 t3.BindText Text3 End Sub | 6、 运行程序,鼠标在不同的文本框上移动时,可以看到相应的文本框自动获得焦点,并将内容选中。
7、在其他程序里怎么用?也很简单,在其它工程中,到[工程]菜单,选择[添加文件],选择你以前保存的.cls文件(建议先将此文件拷到工程目录下,以便于管理)说到这里您一定对类模块有了一个大概的了解,发挥自己的想象力,可以作出更好的东西!一个复杂点的例子 ——窗体动态分割条
|
原文转自:http://www.ltesting.net