• 第七讲:利用类事件改变对象的属性(上)


    VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

    类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试

    这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:第七讲:利用类事件改变对象的属性(上)f784a1004ea33a55872473b9b71da6d1.jpeg

    【分享成果,随喜正能量】思想纯正,没有杂念,心地清净、真诚、慈悲,所以你整个体质都发生了大的变化,这就能够度化众生。众生看到你,你不必讲话,看你这样子就行了。。

    第七讲  利用类事件改变对象的属性

    大家好,我们在之前的讲解中,讲到了类对象属性的赋值及读取办法,也讲了如何赋值给类的对象,我们这讲的内容要通过一个实例来讲解如何利用类的事件来改表类对象的属性。

    u在上一讲中我们讲了给类命名事件用Event语句,我们要注意以下的几点理解:

    1 Event总是Public的。

    2 事件可以不带参数,也可以带参数,但参数不能是命名参数,可选参数或数组参数。

    3 事件是能够被对象识别的动作

    1通过窗体控件改变类属性的实例分析

    我们看今日的实例:在一个窗体中,我们要求显示一个类的属性,并通过一个TEXTBOX控件的内容可以改变这个属性,在改变属性之前,要有确认的操作。

    思路:为了完成上述的要求,我们首先要使用Event语句声明事件;然后,建立一窗体UserForm3,添加一个TextBox控件(名称为TextBox1),两个CommandButton控件(名称为CommandButton1和CommandButton2),CommandButton1的Caption设置为“赋值”,CommandButton2的Caption设置为“显示”。在点击显示时可以在TEXT中显示此时对象的属性值。在TEXT中录入你需要的值,点击赋值,程序会提示“是否要赋值”的确认。

    2实现通过窗体控件改变类属性的实例代码

    下面我们看代码部分:

    在类模块中:我们要对事件做声明,声明一个类的change事件。如下:

    Public Event Change(ByRef Cancel As Boolean)

    同时看看对于myclass类模块的代码也有修正:

    Option Explicit

    Public Event Change(ByRef Cancel As Boolean)

    Private s$

    Public Property Get r() As String

      r = s

    End Property

    Public Property Let r(ByVal c As String)

      Dim mybark As Boolean

      RaiseEvent Change(mybark)

      If mybark Then Exit Property

      s = c

    End Property

    Public Sub Class_Initialize() '赋初始值

     s = "0008"

    End Sub

    代码讲解:以上代码中在Let赋值的过程中增加了一个判断。

    代码截图:

    2b34533cdc2c51c38c1946dc1759b6a5.jpeg


    今日内容回向:

    1 类的事件是如何创建的?

    2 什么是类的事件?

    本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

    e157679d4d7f29e8fbd940d8b68dde08.jpeg

    今日内容回向:

    1 类的事件是如何创建的?

    2 什么是类的事件?

    本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

    eeb5956173a6fdee608449ce8fa2f85e.jpeg

    我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


    9d0f20de02ce2d91e8c42223ed55e89c.jpeg

    fab8ebd909e945df3c69ab026d5623ed.jpeg

  • 相关阅读:
    求第n项的因子数量
    新增时无法新增类型的对象Date
    黔院长 | 你知道我们的五脏六腑都有哪些功能吗?
    SoundTouch对音频处理(Android)
    vue3 + mark.js | 实现文字标注功能
    Gem5 Bug Record
    构建知识图谱:从技术到实战的完整指南
    【ASTGCN】代码解读(torch)之train_ASTGCN_r(二)
    vscode访问远程服务器的图形界面如firefox
    Ubuntu Minkowski Engine安装
  • 原文地址:https://blog.csdn.net/VBA6337/article/details/134296000