Excel全部窗体事件详解_值得收藏.
- 格式:doc
- 大小:291.00 KB
- 文档页数:23
一个控件从同一窗体的另一个控件实际接收到焦点之前,Enter 事件发生。同一窗体中的一个控件即将把焦点转移到另一个控件之前,Exit 事件发生。
语法
Private Sub object_Enter( )
Private Sub object_Exit( ByVal Cancel As MSForms.ReturnBoolean)
Enter和Exit事件的语法包含以下成分:
成分说明
object必需。一个有效的对象名。
Cancel必需。事件状态。False表示由该控件处理这个事件(这是默认方式)。True表示由应用程序处理这个事件,并且焦点应当留在当前
控件上。
说明
Enter 事件和 Exit 事件与 Visual Basic 中的 GotFocus 和 LostFocus 事件类似。与 GotFocus 和LostFocus 事件不同的是,当窗体接收或失去焦点时 Enter 事件和 Exit 事件不发生。
例如,假如选中了可初始化 Enter 事件的复选框,而后如又选中同一窗体中的另一个控件,那么对于该复选框来说,Exit 事件被初始化(因为焦点正在移到同一窗体中的不同对象上),而对于该窗体中的第二个控件来说,Enter 事件发生。
因为 Enter 事件发生在焦点移到一特定控件上之前,所以可用 Enter 事件过程来显示指令。例如,可用一个宏或者事件过程来显示一个小窗体或消息框,标识控件一般所包含的数据类型。
注意将控件 Exit 事件的Cancel参数赋值为True,可防止控件失去焦点。
当将控件插入到窗体、框架或多页控件中的一个页面中时,此事件发生。
语法
对于框架
Private Sub object_AddControl( )
对于多页
Private Sub object_AddControl(index As Long, ctrl As Control)
AddControl事件的语法包含以下成分:
成分说明
object必需。一个有效的对象。
index必需。包含新控件的页面的索引。
ctrl必需。要添加的控件。
说明
在运行时间添加控件时,将发生 AddControl 事件。在设计时间添加控件,或在运行时间初次加载并显示一个窗体时,此事件不会发生。
本事件的默认操作是将控件添加到指定的窗体、框架或者多页中。
Add方法将初始化 AddControl 事件。
在通过用户界面更改了控件中的数据后,此事件发生。
语法
Private Sub object_AfterUpdate( )
AfterUpdate事件的语法包含以下成分:
成分说明
object必需。一个有效的对象。
说明
AfterUpdate 事件的发生与该控件是否被绑定(即通过RowSource属性为该控件指定一个数据源)无关。这个事件不能被取消。若要取消这次更改(恢复控件原来的值),请使用 BeforeUpdate 事件,并将参数Cancel设置为True。
对于当前控件来说,AfterUpdate 事件发生在 BeforeUpdate 事件之后,Exit 事件之前。对于Tab 键顺序中的下一个控件来说,AfterUpdate 事件发生在 Enter 事件之前。
当拖放操作正在进行时该事件发生。
语法
对于框架
Private Sub object_BeforeDragOver( ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
对于多页
Private Sub object_BeforeDragOver(index As Long, ByVal Cancel As MSForms.ReturnBoolean, ctrl As Control, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
对于 TabStrip
Private Sub object_BeforeDragOver(index As Long, ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
对于其他控件
Private Sub object_BeforeDragOver( ByVal Cancel As MSForms.ReturnBoolean, ByVal Data As DataObject, ByVal X As Single, ByVal Y As Single, ByVal DragState As fmDragState, ByVal Effect As MSForms.ReturnEffect, ByVal Shift As fmShiftState)
BeforeDragOver事件的语法包含以下成分:
成分说明
object必需。一个有效的对象名。
index必需。受拖放操作影响的多页控件中页面的索引。
Cancel必需。事件状态。False表示由控件处理该事件(这是默认方式);
True表示由应用程序处理该事件。
ctrl必需。拖动正在经过的控件。
Data必需。在拖放操作中被拖动的数据。该数据被打包在DataObject 中。
X, Y必需。控件位置的横坐标和纵坐标。这两个坐标都以磅为单位。
X从该控件的左边开始测量;Y从该控件的顶部开始测量。DragState必需。被拖动数据的转移状态。
Effect必需。放置源所支持的操作。
Shift必需。指定 Shift、Ctrl 和 Alt 的状态。
设置
DragState的设置如下:
常量值说明
fmDragStateEnter0鼠标指针在目标范围之内。fmDragStateLeave1鼠标指针在目标范围之外。
fmDragStateOver2鼠标指针在一个新的位置,但仍在同一目标范
围内。
Effect的设置如下:
常量值说明
fmDropEffectNone0不将放置源复制或移动到放置目标。fmDropEffectCopy1将放置源复制到放置目标。