# BeforeDragOver 事件

当拖放操作正在进行时该事件发生。

框架

Sub object_BeforeDragOver(Cancel, ctrl,Data ,X,Y,DragState ,Effect ,Shift )

多页
Sub object_BeforeDragOver( index ,Cancel, ctrl,Data ,X,Y,DragState ,Effect ,Shift )

TabStrip
Sub object_BeforeDragOver( index ,Cancel,Data ,X,Y,DragState ,Effect ,Shift )

其他控件
Sub object_BeforeDragOver(Cancel,Data ,X,Y,DragState,Effect ,Shift )

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 时,这些控件也支持拖放操作。

应用于