Excel全部窗体事件详解值得收藏Word文档下载推荐.docx
《Excel全部窗体事件详解值得收藏Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Excel全部窗体事件详解值得收藏Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
一个有效的对象名。
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事件的语法包含以下成分:
一个有效的对象。
index
包含新控件的页面的索引。
ctrl
要添加的控件。
在运行时间添加控件时,将发生AddControl事件。
在设计时间添加控件,或在运行时间初次加载并显示一个窗体时,此事件不会发生。
本事件的默认操作是将控件添加到指定的窗体、框架或者多页中。
Add方法将初始化AddControl事件。
在通过用户界面更改了控件中的数据后,此事件发生。
PrivateSubobject_AfterUpdate()
AfterUpdate事件的语法包含以下成分:
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事件的语法包含以下成分:
受拖放操作影响的多页控件中页面的索引。
False表示由控件处理该事件(这是默认方式);
True表示由应用程序处理该事件。
拖动正在经过的控件。
Data
在拖放操作中被拖动的数据。
该数据被打包在DataObject中。
X,Y
控件位置的横坐标和纵坐标。
这两个坐标都以磅为单位。
X从该控件的左边开始测量;
Y从该控件的顶部开始测量。
DragState
被拖动数据的转移状态。
Effect
放置源所支持的操作。
Shift
指定Shift、Ctrl和Alt的状态。
设置
DragState的设置如下:
常量
值
fmDragStateEnter
鼠标指针在目标范围之内。
fmDragStateLeave
1
鼠标指针在目标范围之外。
fmDragStateOver
2
鼠标指针在一个新的位置,但仍在同一目标范围内。
Effect的设置如下:
fmDropEffectNone
不将放置源复制或移动到放置目标。
fmDropEffectCopy
将放置源复制到放置目标。
fmDropEffectMove
将放置源移动到放置目标。
fmDropEffectCopyOrMove
3
将放置源复制或移动到放置目标。
Shift的设置如下:
fmShiftMask
按下Shift。
fmCtrlMask
按下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)
PrivateSubobject_BeforeDropOrPaste(indexAsLong,ByValCancelAsMSForms.ReturnBoolean,ByValActionAsfmAction,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValEffectAsMSForms.ReturnEffect,ByValShiftAsfmShiftState)
PrivateSubobject_BeforeDropOrPaste(ByValCancelAsMSForms.ReturnBoolean,ByValActionAsfmAction,ByValDataAsDataObject,ByValXAsSingle,ByValYAsSingle,ByValEffectAsMSForm