Excel全部窗体事件详解值得收藏.docx
- 文档编号:8226072
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:27
- 大小:27.18KB
Excel全部窗体事件详解值得收藏.docx
《Excel全部窗体事件详解值得收藏.docx》由会员分享,可在线阅读,更多相关《Excel全部窗体事件详解值得收藏.docx(27页珍藏版)》请在冰豆网上搜索。
Excel全部窗体事件详解值得收藏
一个控件从同一窗体的另一个控件实际接收到焦点之前,Enter事件发生。
同一窗体中的一个控件即将把焦点转移到另一个控件之前,Exit事件发生。
语法
PrivateSubobject_Enter()
PrivateSubobject_Exit(ByValCancelAsMSForms.ReturnBoolean)
Enter和Exit事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象名。
Cancel
必需。
事件状态。
False表示由该控件处理这个事件(这是默认方式)。
True表示由应用程序处理这个事件,并且焦点应当留在当前控件上。
说明
Enter事件和Exit事件与VisualBasic中的GotFocus和LostFocus事件类似。
与GotFocus和LostFocus事件不同的是,当窗体接收或失去焦点时Enter事件和Exit事件不发生。
例如,假如选中了可初始化Enter事件的复选框,而后如又选中同一窗体中的另一个控件,那么对于该复选框来说,Exit事件被初始化(因为焦点正在移到同一窗体中的不同对象上),而对于该窗体中的第二个控件来说,Enter事件发生。
因为Enter事件发生在焦点移到一特定控件上之前,所以可用Enter事件过程来显示指令。
例如,可用一个宏或者事件过程来显示一个小窗体或消息框,标识控件一般所包含的数据类型。
注意 将控件Exit事件的Cancel参数赋值为True,可防止控件失去焦点。
当将控件插入到窗体、框架或多页控件中的一个页面中时,此事件发生。
语法
对于框架
PrivateSubobject_AddControl()
对于多页
PrivateSubobject_AddControl(indexAsLong,ctrlAsControl)
AddControl事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象。
index
必需。
包含新控件的页面的索引。
ctrl
必需。
要添加的控件。
说明
在运行时间添加控件时,将发生AddControl事件。
在设计时间添加控件,或在运行时间初次加载并显示一个窗体时,此事件不会发生。
本事件的默认操作是将控件添加到指定的窗体、框架或者多页中。
Add方法将初始化AddControl事件。
在通过用户界面更改了控件中的数据后,此事件发生。
语法
PrivateSubobject_AfterUpdate()
AfterUpdate事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象。
说明
AfterUpdate事件的发生与该控件是否被绑定(即通过RowSource属性为该控件指定一个数据源)无关。
这个事件不能被取消。
若要取消这次更改(恢复控件原来的值),请使用BeforeUpdate事件,并将参数Cancel设置为True。
对于当前控件来说,AfterUpdate事件发生在BeforeUpdate事件之后,Exit事件之前。
对于Tab键顺序中的下一个控件来说,AfterUpdate事件发生在Enter事件之前。
当拖放操作正在进行时该事件发生。
语法
对于框架
PrivateSubobject_BeforeDragOver(ByValCancelAsMSForms.ReturnBoolean,ctrlAsControl,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValDragStateAsfmDragState,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
对于多页
PrivateSubobject_BeforeDragOver(indexAsLong,ByValCancelAsMSForms.ReturnBoolean,ctrlAsControl,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValDragStateAsfmDragState,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
对于TabStrip
PrivateSubobject_BeforeDragOver(indexAsLong,ByValCancelAsMSForms.ReturnBoolean,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValDragStateAsfmDragState,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
对于其他控件
PrivateSubobject_BeforeDragOver(ByValCancelAsMSForms.ReturnBoolean,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValDragStateAsfmDragState,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
BeforeDragOver事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象名。
index
必需。
受拖放操作影响的多页控件中页面的索引。
Cancel
必需。
事件状态。
False表示由控件处理该事件(这是默认方式);True表示由应用程序处理该事件。
ctrl
必需。
拖动正在经过的控件。
Data
必需。
在拖放操作中被拖动的数据。
该数据被打包在DataObject中。
X,Y
必需。
控件位置的横坐标和纵坐标。
这两个坐标都以磅为单位。
X从该控件的左边开始测量;Y从该控件的顶部开始测量。
DragState
必需。
被拖动数据的转移状态。
Effect
必需。
放置源所支持的操作。
Shift
必需。
指定Shift、Ctrl和Alt的状态。
设置
DragState的设置如下:
常量
值
说明
fmDragStateEnter
0
鼠标指针在目标范围之内。
fmDragStateLeave
1
鼠标指针在目标范围之外。
fmDragStateOver
2
鼠标指针在一个新的位置,但仍在同一目标范围内。
Effect的设置如下:
常量
值
说明
fmDropEffectNone
0
不将放置源复制或移动到放置目标。
fmDropEffectCopy
1
将放置源复制到放置目标。
fmDropEffectMove
2
将放置源移动到放置目标。
fmDropEffectCopyOrMove
3
将放置源复制或移动到放置目标。
Shift的设置如下:
常量
值
说明
fmShiftMask
1
按下Shift。
fmCtrlMask
2
按下Ctrl。
fmAltMask
4
按下Alt。
说明
当鼠标指针直接进入、离开或停留在一个有效的目标上时,用该事件监视鼠标指针。
执行拖放操作过程中,当用户移动鼠标、按下或释放鼠标键(单个或多个键)时,系统初始化该事件。
鼠标指针的位置决定了接收这一事件的目标对象。
可以通过检查DragState参数来确定鼠标指针的状态。
当一个控件处理该事件时,可用Effect参数标识要执行的拖放动作。
当Effect设置为fmDropEffectCopyOrMove时,放置源支持复制(fmDropEffectCopy)、移动(fmDropEffectMove)或取消(fmDropEffectNone)操作。
当Effect被设置为fmDropEffectCopy时,放置源支持复制或取消(fmDropEffectNone)操作。
当Effect设置为fmDropEffectMove时,放置源支持移动或取消(fmDropEffectNone)操作。
当Effect设置为fmDropEffectNone时,放置源支持取消操作。
默认设置下,当Cancel为False时,大多数控件不支持拖放操作。
也就是说,不能在该控件上拖动或放置任何目标,并且该控件不初始化BeforeDropOrPaste事件。
但文本框和组合框控件是个例外,即使在Cancel为False时,这些控件也支持拖放操作。
当用户即将在一个对象上放置或粘贴数据时,该事件发生。
语法
对于框架
PrivateSubobject_BeforeDropOrPaste(ByValCancelAsMSForms.ReturnBoolean,ctrlAsControl,ByValActionAsfmAction,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
对于多页
PrivateSubobject_BeforeDropOrPaste(indexAsLong,ByValCancelAsMSForms.ReturnBoolean,ctrlAsControl,ByValActionAsfmAction,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
对于TabStrip
PrivateSubobject_BeforeDropOrPaste(indexAsLong,ByValCancelAsMSForms.ReturnBoolean,ByValActionAsfmAction,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
对于其他控件
PrivateSubobject_BeforeDropOrPaste(ByValCancelAsMSForms.ReturnBoolean,ByValActionAsfmAction,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
BeforeDropOrPaste事件的语法具有以下成分:
成分
说明
object
必需。
一个有效对象名。
index
必需。
放置或粘贴操作将影响到的多页中页面的索引。
Cancel
必需。
事件状态。
False表示由控件处理该事件(这是默认方式)。
True表示由应用程序处理该事件。
ctrl
必需。
目标控件。
Action
必需。
根据当前的键盘设置,指出即将进行的拖放操作的结果。
Data
必需。
在拖放操作中被拖动的数据。
该数据被打包在DataObject中。
X,Y
必需。
当放置操作发生时鼠标指针位置的横坐标和纵坐标。
这两个坐标都以磅为单位。
X从控件的左边开始测量;Y从控件的顶边开始测量。
Effect
必需。
拖放操作对于目标控件的影响。
Shift
必需。
指定Shift、Ctrl和Alt的状态。
。
设置
Action的设置如下:
常量
值
说明
fmActionPaste
2
将选中的对象粘贴到放置目标。
fmActionDragDrop
3
指明用户已经将对象从源拖动到放置目标,并将对象放置到放置目标。
Effect的设置如下:
常量
值
说明
fmDropEffectNone
0
不将放置源复制或移动到放置目标。
fmDropEffectCopy
1
将放置源复制到放置目标。
fmDropEffectMove
2
将放置源移动到放置目标。
fmDropEffectCopyOrMove
3
将放置源复制或移动到放置目标。
Shift的设置如下:
常量
值
说明
fmShiftMask
1
按下Shift。
fmCtrlMask
2
按下Ctrl。
fmAltMask
4
按下Alt。
说明
对于多页或TabStrip,当VisualBasicforApplications传输一个数据对象到该控件时,初始化此事件。
对于其他控件,系统在即将进行放置或粘贴操作时初始化该事件。
当控件处理该事件时,可以更新Action参数以识别需执行的拖放操作。
当Effect设置为fmDropEffectCopyOrMove时,可以将Action的值设置为fmDropEffectNone、fmDropEffectCopy或fmDropEffectMove。
当Effect设置为fmDropEffectCopy或fmDropEffectMove时,可以把Action的值设置为fmDropEffectNone。
当Effect设置为fmDropEffectNone时,不能对Action重新赋值。
控件中的数据被改变之前该事件发生。
语法
PrivateSubobject_BeforeUpdate(ByValCancelAsMSForms.ReturnBoolean)
BeforeUpdate事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象。
Cancel
必需。
事件状态。
False表示由控件处理该事件(这是默认方式)。
True取消更新并表示由应用程序处理该事件。
说明
该事件的发生与控件是否被绑定(即通过RowSource属性为该控件指定一数据源)无关。
对于该控件来说,这个事件发生在AfterUpdate和Exit事件之前(对于接收焦点的下一个控件来说,该事件发生在Enter事件之前)。
如果将Cancel参数设置为True,焦点仍停留在该控件上,并且AfterUpdate事件和Exit事件都不会发生。
当Value属性改变时该事件发生。
语法
PrivateSubobject_Change()
Change事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象。
设置
当Value属性的设置更改时,Change事件发生,无论属性更改是执行代码还是用户在界面上操作的结果,此事件都发生。
以下是更改Value属性的操作的几个例子:
•单击复选框、选项按钮或切换按钮。
•输入或选择组合框、列表框或文本框的新文本值。
•在TabStrip上选择一个不同的标签。
•移动滚动条中的滚动块。
•单击数值调节钮的向向上键或向向下键。
•在多页中选择不同的页。
说明
Change事件过程可以使显示在诸多控件上的数据同步或一致。
例如,可用滚动条的Change事件过程的来更新显示滚动条对应值的文本框的内容。
也可用Change事件过程来实现在一个工作区内显示数据和公式,而在另一个工作区内显示其结果。
注意 在有些情况下,当Value属性改变时,Click事件也可能发生。
然而对于检测一个属性的新值而言,使用Change事件是首选的技术。
在下列两种情况下,发生该事件:
•用鼠标单击控件。
•用户最终在几种可能的值中为控件选择一个值。
语法
对于多页和TabStrip
PrivateSubobject_Click(indexAsLong)
对于所有的其他控件
PrivateSubobject_Click()
Click事件的语法包含以下成分:
成分
说明
object
必需。
一个有效的对象。
index
必需。
与该事件相关联的多页或TabStrip中的页或标签的索引。
说明
在导致Click事件发生的两种情况中,第一种情况应用于命令按钮、框架、图像、标签、滚动条和数值调节钮控件,而第二种情况用于复选框、组合框、列表框、多页、TabStrip和切换按钮控件。
当选项按钮控件的值变为True时,也会导致Click事件发生。
以下是初始化Click事件的操作的几个示例:
•单击窗体的空白区或窗体上的无效控件(除了列表框)。
•单击命令按钮控件。
如果命令按钮尚不具有焦点,则Enter事件发生在Click事件之前。
•当命令按钮控件具有焦点时按空格键。
•单击一控件。
•在窗体上按Enter,该窗体上的一个命令按钮的Default属性设为True,同时焦点没有位于其他的命令按钮上。
•在一个窗体上按Esc,该窗体上有一个命令按钮的Cancel属性设为True,同时焦点没有位于其他的命令按钮上。
•按一个控件的加速键。
当单击控件而引发Click事件时,所发生的一系列事件有:
1.MouseDown
2.MouseUp
3.Click
对于某些控件,当Value属性更改时发生Click事件。
但是,最好使用Change事件来检测一个属性的新值。
下面是由于给控件赋新值而初始化Click操作的示例:
•单击多页或TabStrip中的一个不同页面或标签。
这些控件的Value属性反映了当前的页或标签。
单击当前页或标签不改变控件的值,因而也就不初始化Click事件。
•单击复选框或切换按钮控件,当这些控件之一具有焦点时按空格键,按这些控件中的一个的加速键,或者用代码更改该控件的值。
•将选项按钮值改为True。
将某组中的一个选项按钮值设为True,则该组内的其余按钮的值会自动设置为False。
只针对值变为True的那个按钮发生Click事件。
•选择一个组合框控件或者列表框控件的值,使其完全与该控件下拉列表中的某项匹配。
例如,若列表未经排序,则在编辑区所键入字符的第一个匹配对象可能不是列表中唯一的匹配,所以选择这样的值并不初始化Click事件。
在一个经排序的列表中,可用完全匹配方式来确保所选择的值是用户键入的文本的唯一匹配值。
若Value设置为Null,则不会初始化Click事件。
注意 单击可更改控件的值,因而它能初始化Click事件。
但用右键单击不会改变控件的值,所以它不会初始化Click事件。
当用户指向一个对象并双击鼠标时,发生DblClick事件。
语法
对于多页和TabStrip
PrivateSubobject_DblClick(indexAsLong,ByValCancelAsMSForms.ReturnBoolean)
对于其他事件
PrivateSubobject_DblClick(ByValCancelAsMSForms.ReturnBoolean)
DblClick事件的语法有以下几个成分:
成分
说明
object
必需。
一个有效的对象。
index
必需。
在Pages或Tabs集合里的Page或Tab对象的位置。
Cancel
必需。
事件状态。
False表示由控件处理该事件(这是默认方式)。
True表示由应用程序处理该事件。
说明
若要使该事件发生,这两次击键必须发生在由系统的双击速度设置所限定的时间范围之内。
对于支持Click的控件,DblClick事件前发生的一系列事件有:
1.MouseDown
2.MouseUp
3.Click
4.DblClick
如果一个控件(例如文本框)不支持Click事件,则忽略上述事件序列中的Click事件。
如果双击时Cancel的返回值为True,则控件将忽略第二次单击。
如果第二次单击与第一次单击的作用相反,这是非常有用的,比如双击一个切换按钮。
Cancel参数允许窗体忽略第二次单击,因此无论是单击还是双击按钮都有同样的作用。
每当下拉列表出现或消失时,该事件发生。
语法
PrivateSubobject_DropButtonClick()
DropButtonClick事件的语法有以下几个成分:
成分
说明
object
必需。
一个有效的对象。
说明
通过代码或者在用户界面上采用某些操作,都可初始化DropButtonClick事件。
在代码中,调用DropDown方法会初始化DropButtonClick事件。
在用户界面上,以下任何操作均可初始化该事件:
•单击控件上的下拉按钮。
•按F4。
上述任何操作,无论是发生在代码中还是界面上,都会使下拉框出现在控件上。
当下拉框消失时,系统初始化DropButtonClick事件。
当控件检测到一个错误,并且不能将该错误信息返回调用程序时该事件发生。
语法
对于多页
PrivateSubobject_Error(indexAsLong,ByValNumberAsInteger,ByValDescriptionAsMSForms.ReturnString,ByValSCodeAsSCode,ByValSourceAsString,ByValHelpFileAsString,ByValHelpContextAsLong,ByValCancelDisplayAsMSForms.ReturnBoolean)
对于其他控件
PrivateSubobject_Error(ByValNumberAsInteger,ByValDescriptionAsMSForms.ReturnString,ByValSCodeAs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Excel 全部 窗体 事件 详解 值得 收藏