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 委派時,必須識別處理事件的方法。 若要使事件與您的事件處理常式產生關聯,請將委派的執行個體 (Instance) 加入至事件。 除非您移除委派,否則每當事件發生時就會呼叫事件處理常式。 如需使用委派處理事件的詳細資訊,請參閱 處理和引發事件。
擴充方法
GetMethodInfo(Delegate) |
取得表示特定委派所代表之方法的物件。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應