GiveFeedbackEventHandler 委托
定义
表示处理 Control 的 GiveFeedback 事件的方法。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
事件源。The source of the event.
包含事件数据的 GiveFeedbackEventArgs。A GiveFeedbackEventArgs that contains the event data.
- 继承
示例
下面的示例演示两个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. 方法用于确定MouseDown
事件期间要拖动的项的索引。 IndexFromPointThe 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.cur
两3dwno.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. UseCustomCursorsCheck
如果CheckBox选中, 则将使用自定义光标。The custom cursors will be used if the UseCustomCursorsCheck
CheckBox 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.None。If 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 DropLocationLabel
Label.
要ListBox
放置给权限的数据DragDrop在事件处理程序中确定, 并String
将值添加到中ListBox
的适当位置。The 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. 有关完整的代码示例, 请参阅方法。DoDragDropSee 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) |
获取指示指定委托表示的方法的对象。Gets an object that represents the method represented by the specified delegate. |