Windows Form 中的拖放功能

Windows Form 包含一組實作拖放行為的方法、事件和類別。 本主題提供 Windows Form 中的拖放功能支援概觀。 另請參閱 拖放作業和剪貼簿支援

執行拖放作業

若要執行拖放作業時,請使用 Control 類別的 DoDragDrop 方法。 如需如何執行拖放作業的詳細資訊,請參閱 DoDragDrop。 若要取得必須在開始拖放作業前先將滑鼠指標拖曳到其上的矩形,請使用 SystemInformation 類別的 DragSize 屬性。

拖放作業包含兩類事件:拖放作業的目前目標所發生的事件,以及拖放作業的來源所發生的事件。

目前目標所發生的事件

下表顯示拖放作業的目前目標所發生的事件。

滑鼠事件 描述
DragEnter 這個事件會在將物件拖曳至控制項的界限內時發生。 這個事件的處理常式會接收 DragEventArgs 類型的引數。
DragOver 這個事件會在滑鼠指標位於控制項界限內的情況下拖曳物件時發生。 這個事件的處理常式會接收 DragEventArgs 類型的引數。
DragDrop 這個事件會在拖放作業完成時發生。 這個事件的處理常式會接收 DragEventArgs 類型的引數。
DragLeave 這個事件會在將物件拖曳出控制項的界限時發生。 這個事件的處理常式會接收 EventArgs 類型的引數。

DragEventArgs 類別提供滑鼠指標的位置、滑鼠按鈕和鍵盤輔助按鍵的目前狀態、正在拖曳的資料,以及可指定拖曳事件來源所允許的作業和作業的目標置放效果的 DragDropEffects 值。

來源所發生的事件

下表顯示拖放作業的來源所發生的事件。

滑鼠事件 描述
GiveFeedback 這個事件會在拖曳作業期間發生。 它提供了一個可對正在發生拖放作業的使用者顯示視覺提示的機會,例如變更滑鼠指標。 這個事件的處理常式會接收 GiveFeedbackEventArgs 類型的引數。
QueryContinueDrag 這個事件會在拖放作業期間引發,讓拖曳來源能夠決定是否應取消拖放作業。 這個事件的處理常式會接收 QueryContinueDragEventArgs 類型的引數。

QueryContinueDragEventArgs 類別提供滑鼠按鈕和鍵盤輔助按鍵的目前狀態、指定是否已按下 ESC 鍵的值,以及可設定以指定是否應該繼續拖放作業的 DragAction 值。

另請參閱