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 值。