▂ 拖曳與放置(Drag and Drop) 在視窗環境下「拖曳與放置」動作,可說是在操作過程中最為直覺的方式。例如我們要將E:\VB程式\上冊中 的檔案「鍵盤介紹」,備份至3.5磁片(A:)內,只要在E:\VB程式\上冊視窗中,在「鍵盤介紹」圖示 上按住滑鼠左鍵不放,將圖示拖曳(Drag)到3.5磁片(A:)視窗內,再放開滑鼠左鍵,即開始複製。
拖曳與指標屬性:
DragMode:設定物件被拖曳的模式。有兩個設定值:
0:由程式碼控制(預設值),物件就在固定位置,無法像自動模式一樣隨時被拖曳。若某物件需要被拖曳,必須 由程式來控制。
1:自動摸式,則物件在拖曳期間物件呈灰色方框。
DragIcon:當物件被拖曳時,要用什麼圖示來顯示。若無設定(none)則以箭頭指標搭配灰色方框。 如被拖曳的物件為圖片或影像時,一般也選用該圖片或影像。
MouseIcon:當屬性MousePointer=99時,可以使用自訂指標圖示。

MousePointer:設定指標的形狀,指標碼與指標型態如下表:
指標碼 指標型態 指標碼 指標型態
0 預設值 9 水平雙向箭頭
1 箭頭 10 向上箭頭
2 十字形 11 砂漏
3 | 形 12 禁止放置標誌
4 圖示 13 砂漏和箭頭
5 十字箭頭 14 問號和箭頭
6 東北向雙箭頭 15 Size All
7 垂直向雙箭頭 99 自訂
8 西北向雙箭頭

▂ DragDrop事件
當拖曳一物件(甲物件)到某個控制項上(乙物件)或是表單上無控制項處並放下該物件時,會觸動該控制項或表 單的DragDrop事件。而且在該DragDrop事件必須做出放下甲物件的反應,如此甲物件才會被允許 放至目的物件(控制項或表單)上。否則被拖曳的甲物件在放開滑鼠後,還是會返回原來的位置。
【語法】
Private Sub物件名稱_DragDrop(Source As Control , X As Single , Y As Single)
【說明】
1. 物件名稱:指目的物件,可包含控制項、表單。
2. Source:指來源物件所代表的名稱,即被拖曳之控制項。Source As Contrl就是宣告Source變數為一控制項。
3. X,Y:為目前指標的座標。
▂ DragOver事件
當拖曳甲物件經過乙物件的領域時,會觸動乙物件之DragOver 事件。
【語法】
Private Sub 物件名稱_DragOver(Source As Control, X As Single, Y As Single, State As Integer)
【說明】
DragOver事件比DragDrop多一個State參數,其參數值所代表意義如下:
0:進入(Enter)即指標剛進入物件的範圍。
1:離開(Leave)即指標剛離開物件的範圍。
2:越過(Over)即指標在物件範圍內移動。
【語法】
物件.DragAction
【說明】
1. Action為決定物件是否能被拖曳的動作值,如下:
0:取消拖曳。若在拖曳期間執行此敘述,則拖曳失效,物件回原處。
1:允許拖曳。
2:結束拖曳,並觸動DragDrop事件。
2. 宣告允許拖曳最適當的時機是按下滑鼠鍵時。即在物件MouseDown事件程序中下達 物件.Drag 1的敘述。
3. 宣告結束拖曳最適當的時機是放開滑鼠鍵時 ,即在物件MouseUp事件程序中下達物件.Drag2的敘述。
▂▂DragDrop與DragOver比較
  • DragDrop(事件):當拖曳甲物件至乙物件處放下甲物件時,觸動乙物件對該事件的反應。
  • DragOver(事件):當拖曳甲物件越過乙物件上方時,觸動乙物件對該事件的反應。 Drag方法
    Drag方法可用來設定物件可否被拖曳。
    【語法】
    物件名稱.Drag[動作]
    【說明】
    Drag動作值
    0:取消拖曳動作。
    1:開始拖曳物件。
    2:結束拖曳並放下物件。