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

news2024/11/16 6:33:01

《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.coloradmin.cn/o/2104664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

css设置让整个盒子的内容渐变透明(非颜色渐变透明)

css设置让整个盒子的内容渐变透明(非颜色渐变透明) 效果核心css代码 效果 核心css代码 /* 设置蒙版上下左右渐变显示 */ mask-image: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 10%, rgba(0, 0, 0, 1) 90%, rgba(0, 0, 0, 0) 1…

使用命令行窗口新建一个Java文件,输出HelloWorld

进入桌面 cd desktop在桌面新建文件夹 mkdir zwt进入文件夹,新建.Java文件 cd zwt echo. > helloWorld.java使用记事本打开文件编写代码 notepad HelloWorld.java此时电脑就会自动打开文件,直接编写代码 public class HelloWorld(){public stati…

北京君正低功耗MCU芯片应用在柯氏音法电子血压计

汉王科技,作为一家在中关村有着30年品牌历史的人工智能企业,始终致力于利用先进技术提升人们的生活品质。近日,继血压计KSY-FF660上市掀起血压测量新标准后,汉王科技再次突破行业创新,推出一体式柯氏音法电子血压计FY7…

高速信号真的可以参考电源层吗?

信号电流必须具有完整的环路,才可传递信息。完整的环路即信号由驱动器发出,经导线传输至接收器,然后再通过某种途径由接收器返回驱动器,形成闭环回路。   高速信号的参考平面一般为信号GND平面,是否可以参考电源平面…

使用iframe在Vue中实现ChatGPT嵌入及微前端解决方案

更多内容个人网站:孔乙己大叔 在现代Web开发中,iframe(Inline Frame)是一个强大的工具,它允许开发者在一个HTML文档中嵌入另一个HTML文档。这种技术不仅可用于简单的网页内容嵌入,还广泛应用于复杂的应用集…

C++基础之杂项

目录 思维导图: 学习内容: 1. Lambda表达式 1.1 基本概念 1.2 定义格式 1.3 常用情况 二、异常处理 2.1 什么是异常处理 2.2 何时使用异常处理 2.3 异常处理的格式 2.4 异常实例 2.5 构造和析构中的异常 2.6 系统提供异常类 三、C中文件…

Arduino基础入门学习——使用BH1750(GY-302)光照强度传感器获取光照强度

使用BH1750(GY-302)光照强度传感器获取光照强度 一、前言二、BH1750(GY-302)介绍三、准备工作四、程序代码五、运行结果六、结束语 一、前言 话不多说,先给大家来一句鸡汤(鸡汤来咯!&#xff09…

人工智能中常用的python模块

一:pypinyin 作用:汉字转拼音 pip3 install pypinyin使用 from pypinyin import lazy\_pinyin,TONE2,TONEres \ lazy\_pinyin(先帝创业未半) print(res) #\[xian, di, chuang, ye, wei, ban\] res \ lazy\_pinyin(先帝创业未半,styleTONE2) print(re…

什么是网络威胁情报?

目录 网络威胁情报定义 网络威胁情报的优势 常见攻击指标(IOC) 数据与情报 谁从威胁情报中受益? 我的组织是否具备威胁情报能力? 全面网络威胁情报的价值 提供威胁情报的三种方式 战略威胁情报 战术威胁情报 运营威胁情报 威胁情报解决方案中…

【主机入侵检测】开源安全平台Wazuh之Wazuh Server

引言 Wazuh是一个开源的、免费的企业级安全监控解决方案,专注于威胁检测、完整性监控、事件响应和合规性。它由部署在受监控系统的端点安全代理和管理服务器组成,服务器收集并分析代理收集的数据。Wazuh支持多平台,包括Windows、Linux、macOS…

Qt (14)【Qt窗口 —— 文件对话框 QFileDialog】

阅读导航 引言一、文件对话框 QFileDialog简介二、基本用法1. 打开文件(一次只能打开一个文件)2. 打开多个文件(一次可以打开多个文件)3. 保存文件⭕参数说明 三、使用示例四、注意事项 引言 在之前的文章中,我们学习…

【Java】封装

文章目录 前言一、封装是什么?总结 前言 了解封装,运用起来。 一、封装是什么? 封装:就是隐藏对象的属性和实现细节,仅对外提供公共访问方式。 专业术语有点难以理解,但是可以用通俗易懂的例子来理解&am…

小皮面板webman ai项目本地启动教程

1.前置条件 下载小皮面板 下载后,双击安装,一路next(下一步),无需更改配置。 2.安装必须软件 在小皮面板的软件管理页,安装编号①②③④下面四个软件。 3.启动本地服务 进入到小皮面板的首页&#x…

机器学习引领未来:赋能精准高效的图像识别技术革新

图像识别技术近年来取得了显著进展,深刻地改变了各行各业。机器学习,特别是深度学习的突破,推动了这一领域的技术革新。本文将深入探讨机器学习如何赋能图像识别技术,从基础理论到前沿进展,再到实际应用与挑战展望,为您全面呈现这一领域的最新动态和未来趋势。 1. 引言 …

线性表之双向链表

1. 双向链表的结构 对于单向链表和单向循环链表而言有一个共同的特点,就是链表的每个节点都只有一个指向后继节点的指针,通过这个指针我们就可以从前往后完成对链表的遍历。但是开弓没有回头箭,遍历到尾节点之后再想要回到头结点&#xff0c…

电脑实时监控软件都有哪些,哪款好用?五款热门软件盘点!(珍藏篇)

"洞察秋毫明察见,安全守护在于心。" 在数字化浪潮汹涌的今天,电脑实时监控软件如同古代的明镜高悬,不仅照亮了企业管理的每一个角落,更以科技之力,守护着数据安全与业务高效运转的底线。 本文将带您领略八款…

中秋赏月,白酒相伴更添情趣

月华如练,秋风送爽,又是一年中秋时。在这个象征着团圆与和谐的佳节里,明月当空,照亮了大地的每一个角落,也照亮了人们心中那份深深的思念与期盼。而在这样的夜晚,若有一瓶豪迈白酒(HOMANLISM&am…

快速回顾-CSS3

回顾 1 效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>CSS66</title><style…

C++,拷贝构造 详解

文章目录 1. 概述1.1 拷贝构造函数的定义1.2 拷贝构造函数的特点 参考 1. 概述 拷贝构造&#xff0c;也被称为复制构造或拷贝构造函数&#xff0c;是C中的一种特殊构造函数。其主要作用是在创建一个新对象时&#xff0c;将另一个已存在的同类型对象的值拷贝到新对象中。拷贝构…

代码随想录冲冲冲 Day36 动态规划Part4

又一次越来越感受到了动规的“魅力”&#xff0c;头发又开始掉了 1049. 最后一块石头的重量 II 1.dp数组 dp[j]中的 j是 背包为j的情况下 最多能背的石头的最大量 2.dp数组初始化 首先dp[j]中j表示的是容量 那么这个容量最大值就是所有石头的总重量 因为提示中给出1 <…