ToolStripItem.QueryContinueDrag 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。
public:
event System::Windows::Forms::QueryContinueDragEventHandler ^ QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler QueryContinueDrag;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.QueryContinueDragEventHandler? QueryContinueDrag;
[<System.ComponentModel.Browsable(false)>]
member this.QueryContinueDrag : System.Windows.Forms.QueryContinueDragEventHandler
Public Custom Event QueryContinueDrag As QueryContinueDragEventHandler
事件类型
- 属性
示例
下面的代码示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 QueryContinueDrag 。 此报告可帮助你了解事件发生的时间,并可以帮助你进行调试。 若要报告多个事件或频繁发生的事件,请考虑将 MessageBox.ShowConsole.WriteLine 消息替换为 或将消息追加到多行 TextBox。
若要运行示例代码,请将其粘贴到包含继承自 ToolStripItem的类型的实例(如 ToolStripButton 或 ToolStripMenuItem)的项目中。 然后命名实例 ToolStripItem1
并确保事件处理程序与事件 QueryContinueDrag 相关联。
private void ToolStripItem1_QueryContinueDrag(Object sender, QueryContinueDragEventArgs e) {
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "KeyState", e.KeyState );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Action", e.Action );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "QueryContinueDrag Event" );
}
Private Sub ToolStripItem1_QueryContinueDrag(sender as Object, e as QueryContinueDragEventArgs) _
Handles ToolStripItem1.QueryContinueDrag
Dim messageBoxVB as New System.Text.StringBuilder()
messageBoxVB.AppendFormat("{0} = {1}", "KeyState", e.KeyState)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "EscapePressed", e.EscapePressed)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "Action", e.Action)
messageBoxVB.AppendLine()
MessageBox.Show(messageBoxVB.ToString(),"QueryContinueDrag Event")
End Sub
注解
在 QueryContinueDrag 拖放操作期间键盘或鼠标按钮状态发生更改时,将引发 该事件。 事件 QueryContinueDrag 允许拖动源确定是否应取消拖放操作。
以下说明介绍了如何以及何时引发与拖放操作相关的事件。
方法 DoDragDrop 确定当前光标位置下的项。 然后,它会检查该项是否是有效的放置目标。
如果项是有效的放置目标,则会 GiveFeedback 使用指定的拖放效果引发事件。 有关拖放效果的列表,请参见 DragDropEffects 枚举。
按以下方式跟踪鼠标光标位置、键盘状态和鼠标按钮状态的更改:
如果键盘或鼠标按钮状态发生更改,则会QueryContinueDrag引发 事件,并根据事件的 QueryContinueDragEventArgs属性的值Action确定是继续拖动、删除数据还是取消操作。
如果 的DragActionContinue
值为 ,则会DragOver引发事件以继续操作,并使用GiveFeedback新效果引发事件,因此可以设置适当的视觉反馈。 有关有效放置效果的列表,请参见 DragDropEffects 枚举。
DragOver和 GiveFeedback 事件是配对的,以便当鼠标在放置目标上移动时,用户将获得有关鼠标位置的最新反馈,如下所示:
如果 的DragAction
Drop
值为 ,则删除效果值将返回到源,因此源应用程序可以对源数据执行适当的操作;例如,如果操作是移动,则剪切数据。如果 的DragAction
Cancel
值为 ,则DragLeave引发 事件。