Windows 窗体中的拖放功能

Windows 窗体包含一组用于实现拖放行为的方法、事件和类。 本主题概述 Windows 窗体中对拖放功能的支持。 有关更多信息,请参见 拖放操作和剪贴板支持拖放操作和剪贴板支持拖放操作和剪贴板支持拖放操作和剪贴板支持.

执行拖放操作

若要执行拖放操作,请使用 Control 类的 DoDragDrop 方法。 有关如何执行拖放操作的更多信息,请参见 DoDragDrop。 在拖放操作开始前,必须将鼠标指针拖到特定矩形上,若要获取该矩形,请使用 SystemInformation 类的 DragSize 属性。

与拖放操作相关的事件

在拖放操作中有两类事件:一类是在拖放操作的当前目标上发生的事件,一类是在拖放操作的源上发生的事件。

当前目标上的事件

下表显示在拖放操作的当前目标上所发生的事件。

鼠标事件

说明

DragEnter

将对象拖至控件的边框内时此事件发生。 此事件的处理程序接收类型为 DragEventArgs 的参数。

DragOver

当鼠标指针在控件的边框内时,如果拖动某个对象则此事件发生。 此事件的处理程序接收类型为 DragEventArgs 的参数。

DragDrop

在拖放操作完成时此事件发生。 此事件的处理程序接收类型为 DragEventArgs 的参数。

DragLeave

将对象拖至控件的边框外时此事件发生。 此事件的处理程序接收类型为 EventArgs 的参数。

DragEventArgs 类提供鼠标指针的位置、鼠标按钮和键盘修改键的当前状态、正在拖动的数据和 DragDropEffects 值(这些值用于指定拖动事件的源所允许的操作以及该操作的目标放置效果)。

源上的事件

下表显示在拖放操作的源上发生的事件。

鼠标事件

说明

GiveFeedback

此事件在拖动操作期间发生。 使用该事件可以向用户提供可见提示(如更改鼠标指针形状),以通知用户正在进行拖放操作。 此事件的处理程序接收类型为 GiveFeedbackEventArgs 的参数。

QueryContinueDrag

此事件在拖放操作期间引发,拖动源通过它可以确定是否应取消拖放操作。 此事件的处理程序接收类型为 QueryContinueDragEventArgs 的参数。

QueryContinueDragEventArgs 类提供鼠标按钮和键盘修改键的当前状态、指定是否按下了 Esc 键的值和 DragAction 值(设置该值可指定是否应继续拖放操作)。

请参见

其他资源

Windows 窗体应用程序中的鼠标输入