Click here to Skip to main content
Licence CPOL
First Posted 13 Nov 2008
Views 10,519
Downloads 134
Bookmarked 19 times

Example of Drag and Drop using Files

By Rezied | 13 Nov 2008
I wrote a little example app that merges text files that you drag and dropped into the listview
1 vote, 14.3%
1

2

3

4
6 votes, 85.7%
5
3.86/5 - 7 votes
μ 3.86, σa 2.65 [?]

Introduction

Well this is just a pretty straightforward example of how to create a drag and drop feature that can list the file paths of the files that were dragged into the listview. Feel free to use it however you like... I hope this example helps some of the VB.NET developers.

Using the Code

There are really only two things that are needed to create a drag and drop feature...

First: You need to have a Private Sub Method that is: "DragEnter" and choose what kind of DataFormat you wish to use... In this example, I chose FileDrop.  You also need to choose what kind of effect you want the drag and drop feature to do. For instance, I chose "copy". You can choose whatever best fits with the type of application that you are designing.

Second: You will need to have a Private Sub Method that is: "DragDrop". This is where you want to specify what you want to do with the DataFormat that was copied. Below are examples of the first and second subs that I used to create the drag and drop feature. 

    Private Sub lstFiles_DragEnter(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFiles.DragEnter
        'SET THE PROPER ACTION FOR FILE DROP....BY USING THE FILEDROP METHOD TO COPY
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
            e.Effect = DragDropEffects.Copy
        Else
            e.Effect = DragDropEffects.None
        End If
    End Sub 
   Private Sub lstFiles_DragDrop(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.DragEventArgs) Handles lstFiles.DragDrop
        'NOW THIS IS WHAT SHOULD TAKE PLACE FOR THE APP TO ADD THE TEXT FILE
        ' PATHS TO THE LIST VIEW ITEMS
        If e.Data.GetDataPresent(DataFormats.FileDrop) Then
            Dim filePaths As String() = CType(e.Data.GetData_
				(DataFormats.FileDrop), String())
            For Each filePath As String In filePaths

                Dim chkExt As String = _
			My.Computer.FileSystem.GetFileInfo(filePath).Extension
                'I'M STILL LEARNING SO PLEASE DON'T CRITISIZE ME TO BAD....
                'THIS IS THE ONLY METHOD THAT I KNOW HOW TO CALCULATE THE FILE SIZE....
                Dim chkSize As String = _
			My.Computer.FileSystem.GetFileInfo(filePath).Length
                chkSize = chkSize / 1024

                'THIS IS WHAT I USED TO ROUND THE SIZE TO 2 DECIMAL POINTS...
                Dim d As Decimal
                d = Decimal.Round(chkSize, 2, MidpointRounding.AwayFromZero)

                'THIS WILL ADD THE FILEPATHS AND THE FILES SIZE TO THE LIST VIEW
                Dim LI As ListViewItem
                LI = Me.lstFiles.Items.Add(filePath)
                LI.StateImageIndex = 0
                LI.SubItems.Add(d & " kb")

            Next filePath
        End If
    End Sub 

Points of Interest

Pretty simple really. I was just bored at the office and wanted something to do.

History

  • 13th November, 2008: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Rezied



United States United States

Member


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralCategorize it PinmvpJohn Simmons / outlaw programmer6:39 13 Nov '08  
AnswerRe: Categorize it PinmemberRezied7:56 13 Nov '08  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web01 | 2.5.120210.1 | Last Updated 13 Nov 2008
Article Copyright 2008 by Rezied
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid