ToolStripItem.GiveFeedback 事件

定义

在执行拖动操作期间发生。

public:
 event System::Windows::Forms::GiveFeedbackEventHandler ^ GiveFeedback;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.GiveFeedbackEventHandler GiveFeedback;
[System.ComponentModel.Browsable(false)]
public event System.Windows.Forms.GiveFeedbackEventHandler? GiveFeedback;
[<System.ComponentModel.Browsable(false)>]
member this.GiveFeedback : System.Windows.Forms.GiveFeedbackEventHandler 
Public Custom Event GiveFeedback As GiveFeedbackEventHandler 

事件类型

属性

示例

下面的代码示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 GiveFeedback 。 此报表可帮助你了解事件发生的时间,并可以帮助你进行调试。 若要报告多个事件或频繁发生的事件,请考虑将 MessageBox.Show 替换为 Console.WriteLine 或将消息追加到多行 TextBox

若要运行示例代码,请将其粘贴到包含继承自 ToolStripItem的类型实例(如 ToolStripButtonToolStripMenuItem)的项目中。 然后命名实例 ToolStripItem1 并确保事件处理程序与事件 GiveFeedback 相关联。

private void ToolStripItem1_GiveFeedback(Object sender, GiveFeedbackEventArgs e) {

System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "Effect", e.Effect );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "UseDefaultCursors", e.UseDefaultCursors );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "GiveFeedback Event" );
}
Private Sub ToolStripItem1_GiveFeedback(sender as Object, e as GiveFeedbackEventArgs) _ 
     Handles ToolStripItem1.GiveFeedback

    Dim messageBoxVB as New System.Text.StringBuilder()
    messageBoxVB.AppendFormat("{0} = {1}", "Effect", e.Effect)
    messageBoxVB.AppendLine()
    messageBoxVB.AppendFormat("{0} = {1}", "UseDefaultCursors", e.UseDefaultCursors)
    messageBoxVB.AppendLine()
    MessageBox.Show(messageBoxVB.ToString(),"GiveFeedback Event")

End Sub

注解

启动 GiveFeedback 拖放操作时引发 事件。 事件 GiveFeedback 允许拖动事件的源修改鼠标指针的外观,以便在拖放操作期间为用户提供视觉反馈。

以下备注描述如何以及何时引发与拖放操作相关的事件。

方法 DoDragDrop 确定当前光标位置下的项。 然后,它会检查该项是否为有效的放置目标。

如果项是有效的放置目标,则会 GiveFeedback 使用指定的拖放效果引发事件。 有关拖放效果的列表,请参见 DragDropEffects 枚举。

按以下方式跟踪鼠标光标位置、键盘状态和鼠标按钮状态的更改:

  • 如果用户移出一个窗口,则引发 DragLeave 事件。

  • 如果鼠标进入另一项, DragEnter 则会引发该控件的 。

  • 如果鼠标移动但停留在同一项中,则会 DragOver 引发 事件。

如果键盘或鼠标按钮状态发生更改,则会QueryContinueDrag引发 事件,并根据事件的 QueryContinueDragEventArgs的 属性的值Action确定是继续拖动、删除数据还是取消操作。

如果 的DragActionContinue值为 ,则会DragOver引发 事件以继续操作,并使用GiveFeedback新效果引发 事件,以便设置适当的视觉反馈。 有关有效放置效果的列表,请参见 DragDropEffects 枚举。

DragOverGiveFeedback 事件配对,以便当鼠标在放置目标上移动时,用户将获得有关鼠标位置的最新反馈,如下所示:

  • 如果 的DragActionDrop值为 ,则删除效果值将返回到源,因此源应用程序可以对源数据执行相应的操作;例如,如果操作是移动,则剪切数据。

  • 如果 的DragActionCancel值为 ,则DragLeave引发 事件。

适用于