Control.DragEnter 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
当对象被拖动到控件的边界时发生。
public:
event System::Windows::Forms::DragEventHandler ^ DragEnter;
public event System.Windows.Forms.DragEventHandler DragEnter;
public event System.Windows.Forms.DragEventHandler? DragEnter;
member this.DragEnter : System.Windows.Forms.DragEventHandler
Public Custom Event DragEnter As DragEventHandler
事件类型
示例
下面的代码示例演示了两 ListBox 个控件之间的拖放操作。 该示例在拖动操作启动时调用 DoDragDrop 该方法。 如果鼠标在事件发生期间MouseDown已从鼠标位置移动超过SystemInformation.DragSize鼠标位置,则拖动操作将开始。 该方法 IndexFromPoint 用于确定在事件期间 MouseDown 要拖动的项的索引。
该示例还演示如何对拖放操作使用自定义游标。 该示例要求在应用程序目录中分别存在两个游标文件 3dwarro.cur3dwno.cur以及自定义拖放游标。 如果选中自定义游标, UseCustomCursorsCheckCheckBox 将使用自定义游标。 自定义游标在事件处理程序中 GiveFeedback 设置。
键盘状态在右侧ListBox的事件处理程序中DragOver计算,以确定拖动操作将基于 Shift、Ctrl、Alt 或 Ctrl+Alt 键的状态。 在事件发生期间DragOver也会确定放置位置ListBox。 如果要删除的数据不是一个 String,则 DragEventArgs.Effect 设置为 None in DragDropEffects。 最后,下拉列表的状态显示在 DropLocationLabelLabel.
要为右侧 ListBox 删除的数据在事件处理程序中 DragDrop 确定,并在 String 相应的位置 ListBox添加值。 如果拖动操作在窗体的边界外移动,则会在 QueryContinueDrag 事件处理程序中取消拖放操作。
此代码摘录演示了如何使用事件 DragEnter 。 DoDragDrop请参阅完整的代码示例的方法。
void ListDragTarget_DragEnter( Object^ /*sender*/, System::Windows::Forms::DragEventArgs^ /*e*/ )
{
// Reset the label text.
DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragEnter(object sender, DragEventArgs e)
{
// Reset the label text.
DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) Handles ListDragTarget.DragEnter
' Reset the label text.
DropLocationLabel.Text = "None"
End Sub
注解
DragEnter当用户在拖放操作期间首次将鼠标光标拖动到控件上时,将引发该事件。
以下信息介绍了如何以及何时引发与拖放操作相关的事件。
该方法 DoDragDrop 确定当前游标位置下的控件。 然后检查控件是否为有效的删除目标。
如果控件是有效的放置目标,则会 GiveFeedback 使用指定的拖放效果引发该事件。 有关拖放效果的列表,请参阅 DragDropEffects 枚举。
跟踪鼠标光标位置、键盘状态和鼠标按钮状态的更改。
如果键盘或鼠标按钮状态发生更改, QueryContinueDrag 则会引发该事件,并确定是继续拖动、删除数据,还是根据 Action 事件的 QueryContinueDragEventArgs属性值取消操作。
如果值为 DragAction
Continue1,则会 DragOver 引发该事件以继续操作,并使用 GiveFeedback 新效果引发该事件,以便可以设置适当的视觉反馈。 有关有效删除效果的列表,请参阅 DragDropEffects 枚举。注意
配对 DragOver 和 GiveFeedback 事件,以便在鼠标在放置目标之间移动时,系统会向用户提供鼠标位置的 up-to日期反馈。
如果值为DragAction
Drop,则下降效果值将返回到源,因此源应用程序可以对源数据执行适当的操作;例如,如果操作是移动操作,则剪切数据。如果值为
< a0/a0>,则会 引发该事件。 注意
Y其X属性DragEventArgs位于屏幕坐标中,而不是客户端坐标。 以下 Visual C# 代码行将属性转换为客户端 Point。
Point clientPoint = targetControl.PointToClient(new Point(de.X, de.Y));
有关处理事件的详细信息,请参阅 处理和引发事件。