2、DragIcon屬性
在拖動中,並非對象本身在移動,而是代表對象的圖標。即一旦拖動某個控件,該控件就變成一個圖標,放下後再恢復原來控件。DragIcon屬性含有一個圖標或圖片的文件名,如:Picture1.DragIcon=c:vb5iconscomputerdisk06.ico當拖動Picture1時,Picture1即變成由disk06.ico所代表的圖標。
與拖放有關的事件
與拖放有關的事件是DragDrop和DragOver,把控件拖動,如松開鼠標按鈕,則產生DragDrop事件,事件過程格式如下:
Sub對象名_DragOver(SourceAsControl,XAsSingle,YAssingle,StateAsInteger)
......
EndSub
該對象含有三個參數,其中Source為一個對象變量,類型為Control.該參數含有被托動對象的屬性,參數X、Y為松開鼠標按鈕時光標的位置。
DragOver事件用於圖標移動,格式如下
Sub對象名_DragOver(SourceAsControl,XAsSingle,YAsSingle,StateAsInteger)
……
EndSub
該事件含有四個參數,Source含義同前,X、Y是鼠標托動時光標的位置坐標,State有三個值可取,當為0時,鼠標光標正進入目標對象區域,當為1時,鼠標光標正退出目標對象區域,當為2時,鼠標光標正位於目標對象的區域之內。
與拖放有關的方法
與拖放有關的方法是Move和Drag。Move方法大家已經很熟悉了,下面介紹Drag方法,Drag方法格式為:
控件.Drag整數,整數范圍為0,1,2含義分別為:
0取消托動操作,1開始拖動操作,2結束操作手動舉例在窗體上建立一個圖片框,裝入一個圖標,首先設置圖片框的DragIcon屬性。
SubForm_Load()
Picture1.DragIcon=Picture1.Picture1.Picture
EndSub
接著用MouseDown事件過程打開拖拉開關。
SubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Picture1.Drag1
EndSub
下面過程是當松開鼠標按鈕時,關閉拖拉開關,停止拖拉並產生DragDrop事件。
SubPicture1_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Picture1.Drag2
EndSub
最後是DragDrop事件
SubForm_DragDrop(SourceAsInteger,XAsSingle,YAsSingle)
Source.Move(X-Source.Width/2),(Y-Source.Height/2)
EndSub
該程序在VB5.0中文版下運行通過。