(接上讲)
四 代码的运行过程及讲解
1 窗体文件的构建
Dim Txt() As New mytext
Private Sub UserForm_Initialize()
For Each myctl In Me.Controls
If TypeName(myctl) = "TextBox" Then
m = m + 1
ReDim Preserve Txt(1 To m)
Set Txt(m).Txtbox = myctl
End If
Next
End Sub
①Dim Txt() As New mytext这句代码定义了一个动态数组变量为类
②在窗体的构建中,要对每一个控件进行判断,如果是"TextBox"类型的控件,那么就将此控件定义为Txt(m).Txtbox,而Txt(m).Txtbox中 txt(m) 定义为mytext类的对象,txtbox是这个对象的事件。Set Txt(m).Txtbox = myctl就是让myctl控件享有我们定义对象的事件。
③ReDim Preserve Txt(1 To m),这句是一个动态数组的重新定义过程,当m值增加后,在不破坏原数据的基础上要重新定义这个动态数组。增加了一个类的对象。
2 当我们在文本框录入数据时,由于文本框是实例化类后的对象,所以这个对象将要响应mytext类的Txtbox事件。
3 在Txtbox_Change事件中。我们用了正则函数来实现控制录入内容的需求。
代码如下:
With CreateObject("vbscript