GiveFeedbackEventHandler 代理人
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示處理 Control之 GiveFeedback 事件的方法。
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 方法。 如果滑鼠在 MouseDown 事件期間已從滑鼠位置移動超過 SystemInformation.DragSize,則拖曳動作會啟動。
IndexFromPoint 方法可用來判斷專案在 MouseDown
事件期間要拖曳的專案索引。
此範例也會示範如何針對拖放作業使用自定義數據指標。 此範例假設應用程式目錄中有兩個數據指標檔案,3dwarro.cur
和 3dwno.cur
,分別存在於自定義拖放數據指標中。 檢查 UseCustomCursorsCheck
CheckBox 時,將會使用自定義數據指標。 自訂數據指標會在 GiveFeedback 事件處理程序中設定。
鍵盤狀態會在右側 ListBox
的 DragOver 事件處理程式中評估,以判斷拖曳作業會根據 SHIFT、CTRL、ALT 或 CTRL+ALT 鍵的狀態而定。 在 DragOver
事件期間,也會決定 ListBox
中發生卸除的位置。 如果要卸除的資料不是 String
,則 DragEventArgs.Effect 會設定為 DragDropEffects.None。 最後,卸除的狀態會顯示在 DropLocationLabel
Label中。
要卸除右側 ListBox
的數據會決定在 DragDrop 事件處理程式中,且 String
值會在 ListBox
的適當位置新增。 如果拖曳作業在窗體界限之外移動,則會在 QueryContinueDrag 事件處理程式中取消拖放作業。
此程式代碼摘錄示範如何搭配 GiveFeedback 事件使用 GiveFeedbackEventHandler 委派。 如需完整的程式代碼範例,請參閱 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) |
取得 物件,表示指定委派所表示的方法。 |