GiveFeedbackEventHandler Делегат

Определение

Представляет метод, обрабатывающий GiveFeedback событие объекта Control.

public delegate void GiveFeedbackEventHandler(System::Object ^ sender, GiveFeedbackEventArgs ^ e);
public delegate void GiveFeedbackEventHandler(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

Источник события.

e
GiveFeedbackEventArgs

Объект, GiveFeedbackEventArgs содержащий данные события.

Примеры

В следующем примере демонстрируется операция перетаскивания между двумя ListBox элементами управления. В примере вызывается DoDragDrop метод при запуске действия перетаскивания. Действие перетаскивания начинается, если мышь перемещена больше, чем SystemInformation.DragSize из расположения мыши во время MouseDown события. Метод IndexFromPoint используется для определения индекса элемента для перетаскивания во время MouseDown события.

В примере также показано использование пользовательских курсоров для операции перетаскивания. В примере предполагается, что два файла 3dwarro.cur курсора и 3dwno.cur, существующие в каталоге приложения, для пользовательских курсоров перетаскивания и без перетаскивания соответственно. Настраиваемые курсоры будут использоваться UseCustomCursorsCheckCheckBox при проверке. Пользовательские курсоры задаются в обработчике GiveFeedback событий.

Состояние клавиатуры вычисляется в DragOver обработчике событий справа ListBox, чтобы определить, какая операция перетаскивания будет основываться на состоянии клавиш SHIFT, CTRL, ALT или CTRL+ALT. Расположение в месте, где ListBox будет происходить удаление, также определяется во время DragOver события. Если данные, которые нужно удалить, не Stringявляется, DragEventArgs.Effect то для нее задано DragDropEffects.Noneзначение . Наконец, в списке DropLocationLabelLabelотображается состояние удаления.

Данные, которые нужно удалить справаListBox, определяются в DragDrop обработчике событий, а String значение добавляется в соответствующее место в .ListBox Если операция перетаскивания перемещается за пределы формы, операция перетаскивания отменяется в обработчике QueryContinueDrag событий.

Этот фрагмент кода демонстрирует использование делегата GiveFeedbackEventHandler с событием GiveFeedback . См. DoDragDrop метод для полного примера кода.

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, 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 вы определите метод, который будет обрабатывать событие. Чтобы связать событие с обработчиком событий, добавьте экземпляр делегата в событие. Обработчик событий вызывается всякий раз, когда происходит событие, если вы не удалите делегат. Дополнительные сведения об обработке событий с помощью делегатов см. в разделе "Обработка и создание событий".

Методы расширения

Имя Описание
GetMethodInfo(Delegate)

Возвращает объект, представляющий метод, представленный указанным делегатом.

Применяется к

См. также раздел