GiveFeedbackEventHandler Делегат
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет метод, который обрабатывает событие GiveFeedbackControl.
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
Источник события.
GiveFeedbackEventArgs, содержащий данные события.
Примеры
В следующем примере демонстрируется операция перетаскивания между двумя элементами управления ListBox. В примере вызывается метод DoDragDrop при запуске действия перетаскивания. Действие перетаскивания начинается, если мышь перемещает больше SystemInformation.DragSize из расположения мыши во время события MouseDown. Метод IndexFromPoint используется для определения индекса элемента для перетаскивания во время события MouseDown
.
В примере также показано использование пользовательских курсоров для операции перетаскивания. В примере предполагается, что два файла курсора, 3dwarro.cur
и 3dwno.cur
, существуют в каталоге приложения для настраиваемых курсоров перетаскивания и без перетаскивания соответственно. Пользовательские курсоры будут использоваться при проверке UseCustomCursorsCheck
CheckBox. Пользовательские курсоры задаются в обработчике событий GiveFeedback.
Состояние клавиатуры вычисляется в обработчике событий DragOver для правой ListBox
, чтобы определить, какая операция перетаскивания будет основываться на состоянии клавиш SHIFT, CTRL, ALT или CTRL+ALT. Расположение в ListBox
, где будет происходить удаление, также определяется во время события DragOver
. Если данные для удаления не являются String
, то DragEventArgs.Effect для DragDropEffects.Noneзадано значение DragDropEffects.None. Наконец, состояние удаления отображается в DropLocationLabel
Label.
Данные, которые нужно удалить для правой 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) |
Возвращает объект, представляющий метод, представленный указанным делегатом. |