当前位置: 首页 > article >正文

VBA中类的解读及应用第十五讲:让文本框在激活时改变颜色(上)

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

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

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十五讲:利用类方法和事件,让文本框在激活时改变颜色(上)a3f190c618fe20e5ded75101ff65274e.jpeg

【分享成果,随喜正能量】身心是我们修行的代表,你是不是真修行,修得怎么样,一看你的相、看你的身体就知道了。你的功夫就在你脸上、就在你行为上,你怎么能骗人?

念佛的人,功夫从从相貌上看,从体质上看。真正修行的人念佛功夫得力,相貌就改变了,身体就强壮了! 确实,我们的相貌会随着我们修行的功夫转变。

你一天念几万声佛号,每天读几部经,你的心地清净慈悲,没有恶念,你的相貌自然就会变成慈祥,你功夫愈深,相貌也愈好。你这修行功夫骗不了人,一看就晓得。。

第十五讲 利用类方法和事件,让文本框在激活时改变颜色(上)

大家好,今天继续讲解类的方法和事件。到这一讲,我们基本已经了解了如何利用类,如何利用类的事件。

如果想利用类,必须在类模块中建立类,类的名称是可以改为自己需要的名称;建立类后还要实例化类,把类转化为一个实体对象,如果不对类进行实例化,是没有任何意义的;一般情况下,可以在窗体的构建中进行类的实例化;如果要让这个实体对象响应类的事件,那么要在类的声明中进行对象的声明,在类模块中进行事件的响应,在窗体模块中进行对象的必要关联。

下面仍是以实例为基础,进行类模块实际问题的讲解。

实例:在窗体中,让每一个文本框在激活时发生颜色的改变。

思路的分析:让窗体中的文本框关联上同一个类,可以执行统一的类事件。在窗体中把必要的文本框和这个类及将执行响应的类事件进行关联。

在这讲及其后的几讲中,我们讲解上述需求的实现过程:

1 搭建类模块及类事件

我们建立一个类模块mytebox,并在类模块中声明一个响应事件的对象Mbox,作为我们要干预文本框的一个对象集合。

Public WithEvents mBOX As MSForms.TextBox

Private Sub mBOX_Change()

m = mBOX.Text

If m = "" Then m = 0

If m > 100 Then

MsgBox ("已经超过100"): DoEvents

End If

End Sub

Private Sub mBox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

For i = 2 To 4

With UserForm7.Controls("TextBox" & i)

.ForeColor = 0 '(黑色)

.BackColor = 16777215 ' (白色)

TT = .Text

End With

Next

mBOX.BackColor = 16711680 ' (蓝色)

mBOX.ForeColor = 16777215 '白色

End Sub

代码截图:

119385548231120bbd2984ca7167bb39.jpeg

2 代码的讲解及窗体初始化效果

1) 在上述代码中Public WithEvents mBOX As MSForms.TextBox是对要响应类对象事件的对象进行了声明。

2) 上面的对象共有两个事件,其一是mBOX_Change其二是mBox_MouseDown。

3) 我们先看第一个事件mBOX_Change。当对象发生改变时,将执行下面的操作:

m = mBOX.Text

If m = "" Then m = 0

If m > 100 Then

MsgBox ("已经超过100"): DoEvents

首先要把mBOX.Text的值提取出来,进行判断,如果是空值按0处理,如果是大于100将进行提示:已经超过100.

4) mBox_MouseDown过程。

For i = 2 To 4

With UserForm7.Controls("TextBox" & i)

.ForeColor = 0 '(黑色)

.BackColor = 16777215 ' (白色)

TT = .Text

End With

Next

mBOX.BackColor = 16711680 ' (蓝色)

mBOX.ForeColor = 16777215 '白色

对于textbox的第2到第4个,首先把每个文本框进行初始化,然后对于激活状态的文本框进行着色设置。背景为蓝色,前景为白色。

运行初始化时的窗体的界面:

0d3a66cc9e4c1aac6e60702783464e35.jpeg

f4ad77ab41066d2f09d2139a05710a6f.jpeg

今日内容回向:

1 类的事件是如何被对象响应的?

2 类事件被声明后,如何才能应用?

(待续)

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

894c70115063ce4b202036f3df5e39c8.jpeg

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

591c316dbbb0c4f7860be2459a309b8d.jpeg



http://www.kler.cn/a/290434.html

相关文章:

  • 【项目开发 | 跨域认证】JSON Web Token(JWT)
  • 数学建模模型算法-Python实现
  • Spring Boot 核心配置文件
  • VSCode可以安装最新版,并且可以对应Node 12和npm 6
  • LeetCode【0018】四数之和
  • 原生 JavaScript基本内容和常用特性详解
  • HarmonyOS开发实战( Beta5版)多线程能力场景化示例最佳实践
  • 虚幻地形高度图生成及测试
  • 【论文分享】MyTEE: Own the Trusted Execution Environment on Embedded Devices 23‘NDSS
  • 使用FFmpeg的AVFilter转换YUV到RGB
  • 别天天看看直播了,你知道如何用jmeter对直播间做压测吗
  • LearnOpenGL学习笔记
  • MySQL复习4
  • 构建灵活的搜索系统:Go 语言实践
  • AI驱动测试管理工具会有哪些发展前景呢?
  • 关于多线程unique_lock和guard_lock
  • 冒泡排序及qsort函数
  • P1505 [国家集训队] 旅游
  • 【C++深入学习】日期类函数从无到有实现
  • day-49 使数组中所有元素相等的最小操作数
  • glsl着色器学习(三)
  • 随时随地远程启动家里设备,极空间部署一键网络唤醒工具『UpSnap』
  • C++ 消息分发类:详细示例应用
  • Python 数据分析笔记— Numpy 基本操作(上)
  • zdppy_cache缓存框架升级,支持用户级别的缓存隔离,支持超级管理员管理普通用户的缓存
  • 【MySql】面试问答:在使用mysql时,遇到分页查询慢的情况怎么处理?