Visual Basic.Net 2005

Lập trình kéo-thả tập tin vào listbox

Viết chương trình VB .Net cho phép kéo-thả một số tập tin trên màn hình desktop vào 1 label của form ứng dụng, 1 listbox khác trong form sẽ hiển thị các tập tin kéo-thả vào.

Để hiển thị hết các file được chọn trong hoạt động drag-drop, bạn nên viết lệnh lặp để ‘add’ từng file trong danh sách vào listbox. Hàm xử lý sự kiện dragdrop cho label được viết lại như sau (có kiểm tra xem dữ liệu dragdrop có phải là danh sách các file không trước khi ‘add’ chúng vào listbox):


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


‘kiểm tra xem có file dữ liệu dragdrop là danh sách file không

If e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim i As Integer
Dim files() As String = e.Data.GetData(DataFormats.FileDrop, True)


‘ Lặp ‘add’ từng tên file bào listbox

For i = 0 To files.Length – 1
lstNguon.Items.Add(files(i))
Next
End If
End Sub

Ngoài ra bạn nên viết thêm hàm xử lý sự kiện DragEnter cho label tương ứng như sau:

Private Sub Label9_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles ListBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.All
End If
End Sub

Lưu ý là phải thiết lập thuộc tính AllowDrop của label về giá trị True thì dragdrop mới hoạt động với label tương ứng.