GiveFeedbackEventHandler GiveFeedbackEventHandler GiveFeedbackEventHandler GiveFeedbackEventHandler Delegate

定义

表示处理 ControlGiveFeedback 事件的方法。Represents the method that handles the GiveFeedback event of a Control.

public delegate void GiveFeedbackEventHandler(System::Object ^ sender, GiveFeedbackEventArgs ^ e);
public delegate void GiveFeedbackEventHandler(object sender, GiveFeedbackEventArgs e);
type GiveFeedbackEventHandler = delegate of obj * GiveFeedbackEventArgs -> unit
Public Delegate Sub GiveFeedbackEventHandler(sender As Object, e As GiveFeedbackEventArgs)

参数

sender
Object Object Object Object

事件源。The source of the event.

继承
GiveFeedbackEventHandlerGiveFeedbackEventHandlerGiveFeedbackEventHandlerGiveFeedbackEventHandler

示例

下面的示例演示两个之间拖放操作ListBox控件。The following example demonstrates a drag-and-drop operation between two ListBox controls. 此示例调用DoDragDrop当拖动操作开始时的方法。The example calls the DoDragDrop method when the drag action starts. 如果已移动鼠标拖动操作启动多个SystemInformation.DragSize鼠标位置在从MouseDown事件。The drag action starts if the mouse has moved more than SystemInformation.DragSize from the mouse location during the MouseDown event. IndexFromPoint方法用于确定要在拖动的项的索引MouseDown事件。The IndexFromPoint method is used to determine the index of the item to drag during the MouseDown event.

示例还演示如何使用自定义光标拖放操作。The example also demonstrates using custom cursors for the drag-and-drop operation. 该示例假定两个光标文件3dwarro.cur3dwno.cur、 存在于应用程序目录,用于自定义拖动和不可拖动光标,分别。The example assumes that two cursor files, 3dwarro.cur and 3dwno.cur, exist in the application directory, for the custom drag and no-drop cursors, respectively. 如果将使用自定义光标UseCustomCursorsCheckCheckBox检查。The custom cursors will be used if the UseCustomCursorsCheckCheckBox is checked. 在中设置自定义光标GiveFeedback事件处理程序。The custom cursors are set in the GiveFeedback event handler.

键盘状态进行评估DragOver事件处理程序的权利ListBox,以确定拖动操作将是根据 SHIFT、 CTRL、 ALT 或 CTRL + ALT 键的状态。The keyboard state is evaluated in the DragOver event handler for the right ListBox, to determine what the drag operation will be based upon state of the SHIFT, CTRL, ALT, or CTRL+ALT keys. 中的位置ListBox期间还确定发生下拉DragOver事件。The location in the ListBox where the drop would occur is also determined during the DragOver event. 如果要删除的数据不是String,则DragEventArgs.Effect设置为DragDropEffects.NoneIf the data to drop is not a String, then the DragEventArgs.Effect is set to DragDropEffects.None. 最后,在显示状态的下拉DropLocationLabel LabelFinally, the status of the drop is displayed in the DropLocationLabelLabel.

若要删除的权利的数据ListBox在中确定DragDrop事件处理程序和String值中的适当位置添加ListBoxThe data to drop for the right ListBox is determined in the DragDrop event handler and the String value is added at the appropriate place in the ListBox. 如果拖动操作移动边界以外的窗体,则在取消拖放操作QueryContinueDrag事件处理程序。If the drag operation moves outside the bounds of the form, then the drag-and-drop operation is canceled in the QueryContinueDrag event handler.

这段代码摘录演示了如何使用GiveFeedbackEventHandler委托,其GiveFeedback事件。This code excerpt demonstrates using the GiveFeedbackEventHandler delegate with the GiveFeedback event. 请参阅DoDragDrop完整的代码示例的方法。See the DoDragDrop method for the complete code example.

void ListDragSource_GiveFeedback( Object^ /*sender*/, System::Windows::Forms::GiveFeedbackEventArgs^ e )
{
   // Use custom cursors if the check box is checked.
   if ( UseCustomCursorsCheck->Checked )
   {
      // Sets the custom cursor based upon the effect.
      e->UseDefaultCursors = false;
      if ( (e->Effect & DragDropEffects::Move) == DragDropEffects::Move )
                  ::Cursor::Current = MyNormalCursor;
      else
                  ::Cursor::Current = MyNoDropCursor;
   }
}
private void ListDragSource_GiveFeedback(object sender, System.Windows.Forms.GiveFeedbackEventArgs e) 
{
    // Use custom cursors if the check box is checked.
    if (UseCustomCursorsCheck.Checked) {

        // Sets the custom cursor based upon the effect.
        e.UseDefaultCursors = false;
        if ((e.Effect & DragDropEffects.Move) == DragDropEffects.Move)
            Cursor.Current = MyNormalCursor;
        else 
            Cursor.Current = MyNoDropCursor;
    }

}
Private Sub ListDragSource_GiveFeedback(ByVal sender As Object, ByVal e As GiveFeedbackEventArgs) Handles ListDragSource.GiveFeedback

    ' Use custom cursors if the check box is checked.
    If (UseCustomCursorsCheck.Checked) Then

        ' Set the custom cursor based upon the effect.
        e.UseDefaultCursors = False
        If ((e.Effect And DragDropEffects.Move) = DragDropEffects.Move) Then
            Cursor.Current = MyNormalCursor
        Else
            Cursor.Current = MyNoDropCursor
        End If
    End If

End Sub

注解

创建 GiveFeedbackEventHandler 委托时,需要标识将处理该事件的方法。When you create a GiveFeedbackEventHandler delegate, you identify the method that will handle the event. 若要将事件与事件处理程序关联,请将该委托的一个实例添加到事件中。To associate the event with your event handler, add an instance of the delegate to the event. 除非移除了该委托,否则每当发生该事件时就会调用事件处理程序。The event handler is called whenever the event occurs, unless you remove the delegate. 使用委托中处理事件的详细信息,请参阅处理和引发事件For more information about handling events with delegates, see Handling and Raising Events.

扩展方法

GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate) GetMethodInfo(Delegate)

获取指示指定委托表示的方法的对象。Gets an object that represents the method represented by the specified delegate.

适用于

另请参阅