Control.DragLeave 事件

定義

發生於將物件拖出控制項界限時。

public:
 event EventHandler ^ DragLeave;
public event EventHandler DragLeave;
public event EventHandler? DragLeave;
member this.DragLeave : EventHandler 
Public Custom Event DragLeave As EventHandler 

事件類型

範例

下列程式碼範例示範兩 ListBox 個控制項之間的拖放作業。 範例會在拖曳動作啟動時呼叫 DoDragDrop 方法。 如果滑鼠在事件期間 MouseDown 從滑鼠位置移動超過 SystemInformation.DragSize ,拖曳動作就會開始。 方法 IndexFromPoint 可用來判斷事件期間 MouseDown 要拖曳之專案的索引。

此範例也會示範如何針對拖放作業使用自訂資料指標。 此範例要求應用程式目錄中分別存在自訂拖放資料指標的兩個數據指標檔案 3dwarro.cur3dwno.cur 。 如果已核取 , UseCustomCursorsCheckCheckBox 則會使用自訂資料指標。 自訂資料指標是在事件處理常式中 GiveFeedback 設定。

鍵盤狀態會在右側 ListBoxDragOver 事件處理常式中評估,以判斷拖曳作業會根據 SHIFT、CTRL、ALT 或 CTRL+ALT 鍵的狀態來決定拖曳作業。 在 事件期間 DragOver 也會決定置放位置中的位置 ListBox 。 如果要卸載的資料不是 String ,則會 DragEventArgs.Effect 在 中 DragDropEffects 設定為 None 。 最後,卸載的狀態會顯示在 中 DropLocationLabelLabel

要為右邊 ListBox 卸載的資料是在事件處理常式中 DragDrop 決定, String 而且值會加入至 中 ListBox 適當的位置。 如果拖曳作業在表單界限之外移動,則會在事件處理常式中 QueryContinueDrag 取消拖放作業。

此程式碼摘錄示範如何使用 DragLeave 事件。 如需完整的程式碼範例, DoDragDrop 請參閱 方法。

void ListDragTarget_DragLeave( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
  // Reset the label text.
   DropLocationLabel->Text = "None";
}
private void ListDragTarget_DragLeave(object sender, EventArgs e)
{
    // Reset the label text.
    DropLocationLabel.Text = "None";
}
Private Sub ListDragTarget_DragLeave(ByVal sender As Object, ByVal e As EventArgs) Handles ListDragTarget.DragLeave
    ' Reset the label text.
    DropLocationLabel.Text = "None"
End Sub

備註

當使用者 DragLeave 將游標拖出控制項,或使用者取消目前的拖放作業時,就會引發 事件。

以下描述與拖放作業相關的事件,其引發的方法與時機。

方法 DoDragDrop 會決定目前游標位置下的 控制項。 然後,它會檢查控制項是否為有效的置放目標。

如果控制項是有效的置放目標,則會 GiveFeedback 使用指定的拖放效果引發事件。 如需拖放效果的清單,請參閱 DragDropEffects 列舉型別。

系統會追蹤滑鼠游標位置、鍵盤狀態和滑鼠按鈕狀態的變更。

  • 如果使用者移出視窗外,便會引發 DragLeave 事件。

  • 如果滑鼠進入另一個控制項,便會引發該控制項的 DragEnter 事件。

  • 如果滑鼠移動,但是待在相同的控制項內,便會引發 DragOver 事件。

如果鍵盤或滑鼠按鍵狀態有變更, QueryContinueDrag 則會引發 事件,並判斷是否要繼續拖曳、卸載資料,或根據 Action 事件的 QueryContinueDragEventArgs 屬性值取消作業。

  • 如果 的值為 DragActionContinue ,則會 DragOver 引發 事件以繼續作業,並以 GiveFeedback 新的效果引發 事件,以便設定適當的視覺回饋。 如需有效置放效果的清單,請參閱 DragDropEffects 列舉型別。

    注意

    DragOverGiveFeedback 事件會配對,如此一來,當滑鼠在置放目標上移動時,系統會提供使用者對滑鼠位置的最新意見反應。

  • 如果 的值為 DragActionDrop ,則會將置放效果值傳回至來源,讓來源應用程式可以在來源資料上執行適當的作業;例如,如果作業是移動,請剪下資料。

  • 如果 的 DragActionCancel 值為 ,則會 DragLeave 引發 事件。

如需處理事件的詳細資訊,請參閱 處理和引發事件

適用於

另請參閱