窗体及控件的常用事件(窗体控件的常用属性)
ccwgpt 2024-11-07 09:54 82 浏览 0 评论
【分享成果,随喜正能量】知识缺乏,可以去汲取、去丰富;能力低下,可以去训练、去强化。唯有扩大胸襟、拓宽视野、升华境界不是一件容易的事。它需要不断地学习、自省、淬火、修炼和砥砺。做人、做事有了境界,就会成为仁者、智者。既仁又智,当天下无敌。人渴望被承认,也就是别人的目光,但是同时,当别人的目光围拢过来的时候,他又感到窒息,感到不自由。获得承认和追求自由之间,有一个多么辩证的关系。
《VBA之Excel应用》是非常经典的,是我推出的第七套教程,定位于初级。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是“VBA之EXCEL应用”的第十六章“用户窗体(Userform)对象”的第3节:窗体及控件的常用事件
第三节 窗体及控件的常用事件
上一讲讲了窗体的显示,这一讲讲解窗体的事件。所谓事件,简单地说就是对象的响应。对于窗体而言,它会响应用户的什么操作呢?我们看下面的详细讲解。
VBE中的对象可识别的事件是预先确定的,并不是所有对象都会具有相同事件。但每个事件都有一个事件过程的框架与之对应,当某一事件发生时,系统将立即执行对应的事件过程,因此,如果想利用这个过程去完成指定的任务,那么用户就必须在这个对应的事件过程中编写程序代码,以便响应发生的事件,否则,即使发生了可识别的事件,系统也不会做任何操作。
我们可以通过下面介绍的界面看到用户窗体中的事件:
1 常用的窗体事件
1) Initialize事件 Initialize事件用来提供应用程序或用户窗体中的控件、变量等进行初始化。该事件的作用和类模块中的该事件相同。
2) QueryClose事件 该事件发生在UserForm关闭之前。通常用这个事件确保在关闭应用程序之前,应用程序包含的用户窗体中没有未完成的任务。该事件的语法格式如下:
格式:Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
该事件括号内有两个参数。其中,参数Cancel是一个整数的值,用于指定是否在所有加载的用户窗体中停止QueryClose事件,当Cancel的值设置为0以外的任意值时,QueryClose事件将停止执行,并防止关闭UserForm与应用程序;参数CloseMode为一个值或常数,用来指示引起QueryClose事件的原因。
CloseMode参数返回下列的值
vbFormControlMenu 0 用户在UserForm上选择“控制”菜单中的“关闭”命令。
VbFormCode 1 由代码调用Unload语句。
vbAppWindows 2 正在结束当前Windows操作环境的过程。(仅用于Visual Basic 5.0。)
vbAppTaskManager 3 Windows 的“任务管理器”正在关闭这个应用。(仅用于Visual Basic 5.0。)
- “常数”是执行程序时保持常数值的命名项目。常数可以是字符串、数值、另一常数、任何(除乘幂与Is之外的)算术运算符或逻辑运算符的组合。每个主应用程序皆可定义自己的一组常数。用户也可以使用Const语句定义附加常数。可在代码中的任何地方使用常数代替实际的值。
3)Terminate事件 该事件用于删除窗体中对象事例的所有引用。Terminate事件发生在卸载窗体对象之后。如果应用程序为非正常退出,从而导致在内存中删除UserForm的示例,将不会触发Terminate事件。例如,在从内存中删除UserForm之前,应用程序调用了End语句,则UserForm不会触发Terminate事件。
4)Activate和Deactivate事件 当运行中的对象变成活动窗口的时候就会发生Activate事件。而当对象不再是活动窗口时,则会发生Deactivate事件。下面的情况会引发这两种事件:
① Show 对象可使用代码中的Show方法变成活动的,且只有在对象是可见的时候才会发生Activate事件。除非使用Show方法,否则用Load加载的UserForm是不可见的。
? ②切换焦点 在应用程序中移动焦点时,也会引发Activate和Deactivate事件。而将焦点移出或移动到另一个应用程序中的对象并不会触发此事件。在卸载对象时,并不会发生 Deactivate 事件。
5)C1ick单击事件。程序运行时,当用户用鼠标左键单击窗体时,引发该窗体的C1ick事件(也称单击事件)。
6) DblClick双击事件。程序运行时,当用户用鼠标左键双击窗体时,引发该窗体的DblClick事件(也称双击事件)。
7)Load装载事件。运行程序,当系统把窗体由外部存储介质装入内存时,引发该窗体的Load事件(也称装载事件)。
8)Resize改变窗体尺寸事件。程序运行时,当窗体大小被改变时,引发该窗体的Resize事件。
9)Activate激活窗体事件。程序运行时,当窗体变为当前窗体时,引发该窗体的Activate事件(也称激活事件)。
10) Deactivate失去激活事件。程序运行时,当A窗体取代B窗体变成当前窗体时,引发B窗体的Deactivate事件(也称失去激活事件)。
11) Unload卸载事件。当窗体被从内存中卸载时,引发该窗体的Unload事件(也称卸载事件)。
从上面介绍的几个事件来看,事件都是在特定的环境下发生的。比如Click事件,只有在单击某个对象时才会发生。可以跟据这一特点,看出窗体中这些自动执行的事件的顺序是:运行窗体后,窗体执行初始化Initialize事件;然后再执行激活Activate事件;当用户的操作完成后,单击关闭按钮,执行关闭QueryClose事件;然后系统再执行Terminate事件,释放对象和用户窗体在内存中的实例和引用。
2 利用窗体的QueryClose事件,完成不保存退出
QueryClose事件在上面已经详细地讲解,在 UserForm关闭之前发生该事件。当点击窗体右上方的关闭按钮时会有触发,此事件在控制关闭窗体就退出关闭工作簿的时候很有用处,使用登录窗体的朋友不会错过它。如下代码,完整写入到对应窗体代码模块中即可实现点击该窗体的关闭按钮,就执行不保存工作簿就退出。
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode AsInteger)
Application.Quit
ThisWorkbook.Close False
End Sub
Sub mynz()
UserForm1.Show
End Sub
代码截图:
代码的运行:
当点击上面的关闭按钮时会直接退出当前的文件工作簿16xlsm
3 控件事件
在讲解窗体的时候,我们讲到,“在用户窗体中,我们可以添加控件,可以显示数据,可以和用户保持实时的交互”。可见在窗体中添加控件,是一项重要的工程,对于窗体中的控件,也有着不同的属性和事件,我们来简单介绍一下一下常用的控件事件。
1)单击事件Click 点击控件时触发。注意TextBox控件没有单击事件,可以通过获得焦点事件处理。
2)双击事件DblClick。双击控件时触发。
3) Change事件,当控件的值(VALUE)变动,则触发事件发生执行事件代码。
4) Enter事件,获得焦点事件,可以简单理解为光标跳动到当前控件时触发的事件。
5) Exit事件,失去焦点事件。简单理解为光标离开当前控件时触发的事件。如果窗体中有多个可选控件(非标签控件),要实现文本框中回车触发,也可以使用Exit事件处理。
6) KeyDown和KeyUp 事件。按下和释放某键时这两个事件依次发生。按下键时发生 KeyDown 事件,而释放键时发生 KeyUp 事件。
- 利用KeyDown处理回车事件示例:
Private Sub TextBox1_KeyDown(ByVal KeyCode AsMSForms.ReturnInteger, ByVal Shift As Integer)
IfKeyCode = 13 Then
’此处写执行的代码
End if
End sub
今日内容回向:
1) 窗体的事件有哪些?
2) 控件的事件有哪些?
3) 如何卸载窗体时发生什么事件?
本讲内容参考程序文件:工作簿16xlsm
相关推荐
- 用Deepseek扩写土木工程毕业论文实操指南
-
用Deepseek扩写毕业论文实操指南一、前期准备整理现有论文初稿/提纲列清楚论文核心框架(背景、现状、意义、方法、数据、结论等)梳理好关键文献,明确核心技术路线二、Deepseek扩写核心思路...
- 985学霸亲授,DeepSeek也能绘6大科研图表,5分钟就出图
-
在实验数据处理中,高效可视化是每个科研人的必修课。传统绘图软件操作复杂、耗时费力,而智能工具DeepSeek的出现彻底改变了这一现状。本文将详解如何用DeepSeek一键生成六大科研常用图表,从思维导...
- AI写论文刷屏?大学生正在丢掉的思考力
-
一、宿舍深夜:当论文变成"Ctrl+C+V"凌晨两点的大学宿舍,小王对着电脑屏幕叹气。本该三天前开始写的近代史论文,此刻还一片空白。他熟练打开某AI写作网站,输入"论五四运动的...
- Grok在辅助论文写作上能不能既“聪明”又“可怕”?!
-
AcademicIdeas-学境思源AI初稿写作随着人工智能技术的飞速发展,论文写作这一学术任务正迎来新的助力。2025年2月18日,美国xAI公司推出了备受瞩目的Grok3模型,其创始人埃隆·...
- 大四论文沟通场景!音频转文字难题听脑AI来化解
-
大四学生都知道,写论文时和导师沟通修改意见,简直是“过关斩将”。电话、语音沟通完,想把导师说的修改方向、重点要求记下来,麻烦事儿可不少。手写记不全,用普通录音转文字工具,转完还得自己慢慢找重点,稍不注...
- 论文写作 | 技术路线图怎么画?(提供经典优秀模板参考)
-
技术路线图是一种图表或文字说明,用于描述研究目标、方法和实施计划。它展示了研究的整体框架和步骤,有助于读者理解研究的逻辑和进展。在课题及论文中,技术路线图是常见的一部分,甚至是一个类似心脏一样的中枢器...
- 25年信息系统项目管理师考试第2批论文题目写作建议思路框架
-
25年信息系统项目管理师考试第2批论文题目写作建议思路框架--马军老师
- 微信购物应尽快纳入法律框架(微信购物管辖)
-
符向军近日,甘肃省工商行政管理局发布《2016年上半年信息分析报告》。报告显示,微信网购纠纷迅猛增长,网络购物投诉呈上升趋势。投诉的主要问题有出售的商品质量不过关、消费者通过微信付款后对方不发货、购买...
- 泛珠三角区域网络媒体与腾讯微信签署《战略合作框架协议》
-
新海南客户端、南海网7月14日消息(记者任桐)7月14日上午,参加第四届泛珠三角区域合作网络媒体论坛的区域网络媒体负责人及嘉宾一行到腾讯微信总部座谈交流,并签署《战略合作框架协议》(以下简称《框架协...
- 离线使用、植入微信-看乐心Mambo手环如何打破框架
-
从2014年开始智能手环就成功进入人们的生活,至今已经演变出数据监测、信息推送、心率监测等诸多五花八门的功能,人们选择智能手环并不指望其能够改变身体健康情况,更多的是通过数据来正视自身运动情况和身体健...
- 华专网络:如何零基础制作一个网站出来?
-
#如何零基础制作一个网站出来?#你是不是觉得网站建设很复杂,觉得自己是小白,需求不明确、流程搞不懂、怕被外包公司坑……这些问题我都懂!今天华专网络就用大白话给你捋清楚建站的全流程,让你轻松get网站制...
- WAIC2024丨明日上午9点,不见不散!共同探讨智能社会与全球治理框架
-
大咖云集,硕果闪耀WAIC2024世界人工智能大会智能社会论坛将于7月5日9:00-12:00与你相约直播间WAIC2024上海杨浦同济大学哔哩哔哩多平台同步直播探讨智能社会与全球治理框架WAIC...
- 约基奇:森林狼换来戈贝尔时大家都在嘲笑 他们的阵容框架很不错
-
直播吧5月4日讯西部季后赛半决赛,掘金将迎战森林狼,约基奇赛前接受采访。约基奇说道:“当蒂姆-康纳利(森林狼总经理、前掘金总经理&曾选中约基奇)做了那笔交易(换来戈贝尔)时,每个人都在嘲笑他...
- 视频号带货为什么一个流量都没有?顶级分析框架送给你
-
视频号带货为什么一个流量都没有?遇到问题,一定是步步来分析内容,视频号带货一个流量都没有,用另外一个意思来讲,就可以说是零播放。为什么视频号带货一个流量都没有?跟你说再多,都不如来个分析框架。1、是否...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)