电竞比分网-中国电竞赛事及体育赛事平台

分享

vb.net入門——在 Windows 窗體中執(zhí)行拖放操作

 nxhujiee 2010-04-20

vb.net入門——在 Windows 窗體中執(zhí)行拖放操作

【字體大?。?a accessKey=1 href="javascript:SetFont('12px')">小 2008-02-18 19:56 來源: 作者:  

現(xiàn)在支持鼠標拖放的Windows應(yīng)用程序隨處可見,鼠標拖放功能也極大地方便了用戶的操作,那么在我們的程序中添加上這么一個使用的功能是不是很難呢,其實很簡單。下面我們就來看看如何實現(xiàn)鼠標拖放。

一個拖放的過程實際上是要經(jīng)過如下步驟的:

1、拖(dragging)是通過調(diào)用源控件的DoDragDrop方法來初始化的,DoDragDrop有兩個參數(shù) data,指定將要傳送的數(shù)據(jù) allowedEffects,指定允許進行的操作(復(fù)制或移動)這樣自動創(chuàng)建了一個新的Dataobject對象

2、接下來就依次激發(fā)了GiveFeedBack事件。在大多數(shù)情況下,我們并不需要關(guān)心GiveFeedBack事件。然而你如果想自定義拖放過程中的鼠標指針的話,你可以在這些地方加上你的代碼。

3、任何有AllowDrop屬性而且被設(shè)置成True的控件都是隱含的Drop對象。AllowDrop屬性可以在設(shè)計時的屬性窗口中進行設(shè)置,也可以在Form_load事件自動加載。

4、當鼠標移到某個控件時,就同時激發(fā)了這個控件的DragEnter事件。GetDataPresent方法是用來確認拖過來的數(shù)據(jù)是否適合目標控件,Effect屬性是用來顯示適當?shù)氖髽酥羔槨?/p>

5、如果用戶在有效的目標控件上釋放鼠標,就同時激發(fā)了DragDrop事件。DragDrop事件句柄中的代碼從DataObject對象中釋放數(shù)據(jù)并把它顯示在目標控件中。

下面我們就一個從系統(tǒng)中拖放獲得文件路徑的例子來演示下如何完成拖放的設(shè)計。

1、首先把窗體的TopMost屬性設(shè)置為True,然后在窗體中放置一個ListBox控件,并且把它的AllowDrop屬性設(shè)置為True。

2、為ListBox1的DragEnter事件中添加代價代碼以確認數(shù)據(jù)是所需要的:

Private Sub ListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter

'檢查是否是Windows文件的放置格式。

If e.Data.GetDataPresent(DataFormats.FileDrop) Then

e.Effect = DragDropEffects.All

'這里Effect屬性被設(shè)置成DragDropEffects.All,并不會影響到源數(shù)據(jù)

End If

End Sub

3、釋放鼠標,激發(fā)了DragDrop事件,然后從DataObject對象中獲取我們需要的數(shù)據(jù)

Private Sub ListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragDrop

If e.Data.GetDataPresent(DataFormats.FileDrop) Then

Dim MyFiles() As String

Dim i As Integer

MyFiles = e.Data.GetData(DataFormats.FileDrop)

'從私有剪貼板中獲取文件的路徑

For i = 0 To MyFiles.Length - 1

ListBox1.Items.Add(MyFiles(i))

Next

End If

End Sub

4、代碼寫完了,現(xiàn)在按F5運行,從硬盤上隨便拖放一個或者多個選定的文件,效果如下:

vb.net入門——在 Windows 窗體中執(zhí)行拖放操作

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多