首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

菜鸟,对类的调用有些不明白

2012-02-09 
初学者,对类的调用有些不明白这是我从网上看到文章关于VisualBasic6.0类开发(上)对程序员和编程爱好者来说

初学者,对类的调用有些不明白
这是我从网上看到文章
关于Visual       Basic       6.0类开发(上)      
    对程序员和编程爱好者来说,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      
       
              '类的代码结束      
       
      (2)类的引用;      
       
      已经编写完成的类可以经过两种格式进行引用,第一种方式:Private(public或者dim)       myCLS(指定的类名)       As       New       cls(编写完成的类名);第二种方式较多用于程序编写风格较“老”的程序员:首先在窗体代码中进行模块级声明——Dim       myCLS       As       cls,然后在具体代码过程中进行具体定义——       Set       mycls       =       New       cls。这两种方式的效率和代码的简洁性方面可能会有所差别,但在笔者的编程实践中,并没有什么特别的感觉,不过我较多使用第一种方式,因为它书写起来更加方便。另外,在代码结束的时候,使用       Set       myCLS       =       Nothing来取消类的资源占用是一种非常好的编程习惯。      
       
      在窗体form1中(窗体有一个密码框控件text1,passworldchar= "* ")添加以下代码:      
       
      Option       Explicit      
       
       Private       myCLS       As       New       cls      
       
        '引用cls      
       
       Private       Sub       Form_Load()      
       
       myCLS.Attach       Text1      
       
        '启动类          
       
      End       Sub      
       
       '在代码结束时记得释放资源      
       
      Private       Sub       Form_Unload(Cancel       As       Integer)      
       
       Set       myCLS       =       Nothing      
       
      End      
       
     End       Sub      


       

我不明白的地方   myCLS.Attach       Text1     这应该是调用了类,但是类里面的Private       Sub       mytxt_KeyUp(KeyCode       As       Integer,       Shift       As       Integer)检测字母的过程是怎么调用的,是谁来调用的,请留下你们的qq号好吗?      



[解决办法]
Public Sub Attach(itTEXT As TextBox)

     '接受外部变量到mytxt中

    Set mytxt = itTEXT

   End Sub
这样 Private Sub mytxt_KeyUp(KeyCode As Integer, Shift As Integer)
实际就是Text1_KeyUp


*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

热点排行