Control.DragLeave 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生於物件拖出控件界限時。
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 設定。
鍵盤狀態會在事件處理程序中評估 DragOver 右鍵 ListBox,根據 SHIFT、CTRL、ALT 或 CTRL+ALT 鍵的狀態來決定拖曳操作。
ListBox掉落地點也會在事件中DragOver決定。 若要丟棄的資料不是 String,則 DragEventArgs.Effect 在 中 被設定為 NoneDragDropEffects。 最後,掉落狀態會顯示在 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事件會被觸發,並根據事件QueryContinueDragEventArgs屬性的值Action決定是否繼續拖曳、資料下放或取消操作。
若 DragAction 值為
Continue, DragOver 則事件會被觸發以繼續操作,並 GiveFeedback 以新效果觸發事件,以便設定適當的視覺回饋。 有關有效落差效應的列表,請參閱列舉。DragDropEffects注意
DragOver與GiveFeedback事件會配對,當滑鼠移動到落點時,使用者會獲得最多 up-to-日期的滑鼠位置回饋。
若 的值 DragAction 為
Drop,則 drop effect 值會回傳給來源資料,因此來源應用程式可以對來源資料執行適當的操作;例如,如果操作是移動,則會切割資料。若 值 DragAction 為
Cancel, DragLeave 則事件會被觸發。
如需處理事件的詳細資訊,請參閱 處理和引發事件。