对程序员和编程爱好者来说,VB中类的技术是学习中的一个难点,在大型软件的开发过程中,模块(Moudle)、控件(Active ocx)、链接库(Active dll)和类(Class moudle)构成了系统化、高效化的软件工程,而类的技术是控件和链接库技术的基础,因此掌握类的理论和编程方法是非常有意义的。
(一)类的基本定义和应用概述
类是包含了方法、属性、数据成员的高级代码模块,它既在模块的范畴之内,又是一个没有图形界面的Active ocx,程序员可以象使用控件一样使用它,但却不能看到它,值得注意的是,类是不能继承的。
类能够使我们高效的完成对某一个或者某几个特定的对象的复杂操作,对象的动作就是类的方法,对象的属性就是类的属性过程。相对而言,如果编程的对象是一组事物,那么,我们采用标准模块的方式是非常合适的,在下列两种情况下,应该使用类进行代码处理:
(1)创建大量性质相近的对象;
(2)提高代码的封装性。
类的创建非常简单,在进行代码编写的时候,在“工程”菜单中选择“添加类模块”项目,就可以添加一个空白的类。
类文件一般以.cls作为扩展名保存。
(二)类的方法的实现
类的方法类似于动态链接库的接口函数,它能够接受其他窗体代码的指定类型参数,并且传递到类中。一般来说类的方法是能够指定是否有返回值的。它在类中通常是一个public过程。请看下面的代码示例,它使一个密码框拒绝非字母的输入:
(1)类cls的代码;
Option Explicit '变量检查
Private WithEvents mytxt As TextBox
'本类中的方法接受和控制一个text密码框
Dim isNUM As Boolean
'类的模块级变量
Public Sub Attach(itTEXT As TextBox)
'接受外部变量到mytxt中
Set mytxt = itTEXT
End Sub
Private Sub mytxt_KeyUp(KeyCode As Integer, Shift As Integer)
isNUM = (KeyCode >= 65) And (KeyCode <= 90)
'测试密码框的键盘输入是否是英文字母
If isNUM = False Then
Beep
mytxt.Text = ""
'如果输入不是英文字母则响铃并且清空密码框内容
MsgBox "非法字符输入!"
End If
Debug.Print mytxt.Text
'调试输出密码框内容
End Sub
'类的代码结束
(四)窗体代码的引用
在窗体FORM1中添加文本控件TEXT1、下拉列表控件COMBO1、命令按钮COMMAND1(CAPTION = "开始转化"),调整三个控件到适当位置。
Dim myT As New Class1 '类的引用
Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "字符串大写转化"
Combo1.AddItem "字符串小写转化"
Combo1.AddItem "字符串逆向排序"
Combo1.ListIndex = 0
'在列表框中添加属性选项
End Sub
Private Sub Command1_Click()
'当命令按钮按下时激活类
myT.Attach Text1
'方法参数联接
Select Case Combo1.ListIndex
Case 0
myT.Biaozhi = Lbigit
Case 1
myT.Biaozhi = Lcaseit
Case 2
myT.Biaozhi = Nlogoit
End Select
'根据列表框的选择,给类的Biaozhi属性赋值,注意,在编程环境中,上述属性值自动添加
Text1.Text = myT.dONE '返回排序结束后的字符串
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set myT = Nothing
End '良好的编程习惯
End Sub
怎么样,我们的代码看起来如此的简洁,这种感觉就象是在使用一个控件,不仅可以随心所欲的调用,而且方便的使用了vb的自动提示功能。
★VB部分相关文章推荐:★
☆VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
☆VB SendMessage向其他程序窗口发送字符串消息实例
☆VB中Null, Empty, Nothing, and vbNullString的区别
☆用RtlAdjustPrivilege来调整进程权限(VB6.0代码)
☆[VB]SaveSetting 语句 和 DeleteSetting 语句
☆[vb]利用WScript.Shell对象隐藏cmd命令行运行
评论