Windows Form 中的拖放功能
Windows Form 包括一系列實作拖放行為的方法、事件和類別。 這個主題提供 Windows Form 中拖放支援的概觀。 如需詳細資訊,請參閱拖放作業和剪貼簿支援 和 拖放作業和剪貼簿支援 和 拖放作業和剪貼簿支援 和 拖放作業和剪貼簿支援.
執行拖放作業
若要執行拖放作業,請使用 Control 類別的 DoDragDrop 方法。 如需如何執行拖放作業的詳細資訊,請參閱 DoDragDrop。 若要取得必須在開始拖放作業前先將滑鼠指標拖曳到其上的矩形,請使用 SystemInformation 類別的 DragSize 屬性。
與拖放作業相關的事件
拖放作業中共有兩大事件分類:拖放作業目前目標所發生的事件以及拖放作業來源所發生的事件。
目前目標所發生的事件
下表顯示拖放作業目前目標所發生的事件。
滑鼠事件 |
描述 |
---|---|
當物件被拖曳入控制項界限內時發生這個事件。 這個事件的處理常式會接收 DragEventArgs 類型的引數。 |
|
當在滑鼠指標位於控制項界限內的情況下拖曳物件時發生這個事件。 這個事件的處理常式會接收 DragEventArgs 類型的引數。 |
|
當拖放作業完成時發生這個事件。 這個事件的處理常式會接收 DragEventArgs 類型的引數。 |
|
當物件被拖曳出控制項界限之外時發生這個事件。 這個事件的處理常式會接收 EventArgs 類型的引數。 |
DragEventArgs 類別提供滑鼠指標位置、滑鼠按鈕和鍵盤輔助按鍵的目前狀態、正在拖曳的資料以及 DragDropEffects 值,該值指定拖曳事件來源所允許的作業和作業的目標置放效果。
來源所發生的事件
下表顯示拖放作業來源所發生的事件。
滑鼠事件 |
描述 |
---|---|
這個事件發生於拖曳作業期間。 它提供了一個可對正在發生拖放作業的使用者顯示視覺提示的機會,例如變更滑鼠指標。 這個事件的處理常式會接收 GiveFeedbackEventArgs 類型的引數。 |
|
這個事件是在拖曳作業期間引發,它可讓拖曳來源判斷是否應該取消拖放作業。 這個事件的處理常式會接收 QueryContinueDragEventArgs 類型的引數。 |
QueryContinueDragEventArgs 類別提供滑鼠按鈕和鍵盤輔助按鍵的目前狀態、指定是否已按下 ESC 鍵的值以及 DragAction 值,該值可設為指定是否應該繼續拖放作業。