Windows 3.x 、 Windows 95 和 Widnows 98中,拖放是最常用的操作,VB5.0在程序設(shè)計中能非常容易地實現(xiàn)這一操作。 與拖放有關(guān)的屬性 1、DragMode 屬性 該屬性用來設(shè)置自動或手動拖放模式,缺省值為0(手動方式)。為了讓控件自動執(zhí)行拖放操作,必須把它的屬性設(shè)為1,該屬性即可以在屬性窗口中設(shè)置,也可以在程序中設(shè)置,如:Picture1.DragMode=1一個對象的DragMode屬性值為1時,該控件不再接收Click事件和MouseDown事件。 2、DragIcon 屬性 在拖動中,并非對象本身在移動,而是代表對象的圖標(biāo)。即一旦拖動某個控件,該控件就變成一個圖標(biāo),放下后再恢復(fù)原來控件。DragIcon屬性含有一個圖標(biāo)或圖片的文件名,如:Picture1.DragIcon=c:\vb5\icons\computer\disk06.ico 當(dāng)拖動Picture1時,Picture1即變成由disk06.ico 所代表的圖標(biāo)。 與拖放有關(guān)的事件 與拖放有關(guān)的事件是DragDrop 和DragOver, 把控件拖動,如松開鼠標(biāo)按鈕,則產(chǎn)生DragDrop事件,事件過程格式如下: Sub 對象名_DragOver(Source As Control, X As Single , Y As single, State As Integer) ...... End Sub 該對象含有三個參數(shù),其中Source 為一個對象變量,類型為Control .該參數(shù)含有被托動對象的屬性,參數(shù)X、Y為松開鼠標(biāo)按鈕時光標(biāo)的位置。 DragOver 事件用于圖標(biāo)移動,格式如下 Sub 對象名_DragOver(Source As Control, X As Single, Y As Single, State As Integer) …… End Sub 該事件含有四個參數(shù),Source 含義同前,X、Y是鼠標(biāo)托動時光標(biāo)的位置坐標(biāo),State有三個值可取,當(dāng)為0時,鼠標(biāo)光標(biāo)正進入目標(biāo)對象區(qū)域,當(dāng)為1時,鼠標(biāo)光標(biāo)正退出目標(biāo)對象區(qū)域,當(dāng)為2 時,鼠標(biāo)光標(biāo)正位于目標(biāo)對象的區(qū)域之內(nèi)。 與拖放有關(guān)的方法 與拖放有關(guān)的方法是Move 和Drag。 Move 方法大家已經(jīng)很熟悉了,下面介紹Drag方法,Drag方法格式為: 控件.Drag 整數(shù),整數(shù)范圍為0,1,2 含義分別為: 0 取消托動操作,1 開始拖動操作,2 結(jié)束操作手動舉例在窗體上建立一個圖片框,裝入一個圖標(biāo),首先設(shè)置圖片框的DragIcon 屬性。 Sub Form_Load( ) Picture1.DragIcon=Picture1.Picture1.Picture End Sub 接著用MouseDown事件過程打開拖拉開關(guān)。 Sub Picture1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single) Picture1.Drag 1 End Sub 下面過程是當(dāng)松開鼠標(biāo)按鈕時,關(guān)閉拖拉開關(guān),停止拖拉并產(chǎn)生DragDrop事件。 Sub Picture1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single) Picture1.Drag 2 End Sub 最后是DragDrop事件 Sub Form_DragDrop (Source As Integer, X As Single , Y As Single) Source.Move (X- Source.Width/2),(Y- Source.Height/2) End Sub 該程序在VB5.0中文版下運行通過
(烏魯木齊新疆工學(xué)院 屈強 830008)
|