How to DragDrop and Copy Control in VB.Net

0
627

This tutorial is all about How to DragDrop and Copy Control in VB.Net.
In this tutorial, I will teach you how to create Drag/Drop and Copy Control in VB.Net. With this, you can move and drop the picture that’s inside the PictureBox to another PictureBox and you can also copy it by pressing the Ctrl key on the keyboard of the computer.

 

 

Let’s begin:
Open the Visual Basic, Create a new Windows Form Application and drag the two picture boxes in the Form. Then, name the first picture box “lpic” and the other one is “rpic”.
drogdropform1

After setting the Form and naming the two PictureBoxes, go to the solution explorer and click the code view.
drogdropform2
In the code view, you have to declare a constant variable that is needed for detecting the CRLT key on the keyboard.
[vbnet] ‘ DECLARE A CONSTANT VARIABLE TO USED FOR DETECTING THE CTRL KEY WHEN IT
‘ WAS PRESSED DURING THE DRAG OPERATION
Const MASKCTRL As Byte = 8
[/vbnet] After that, go back to the Form Design and double click it to fire the Form_Load event handler. Then, you have to activate the AllowDrop property of the PictureBox.
[vbnet] Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘SET THE PROPERTIES OF THE PICTUREBOX FOR ALLOWING TO DROP.
lpic.AllowDrop = True
rpic.AllowDrop = True
End Sub
[/vbnet] Go back to the Form Design again and click the two picture boxes on the Form. Go to the properties and click the events on the top that looks like a lightning. Choose the MouseDown event and double click it.
drogdropform3
After that, you have to activate the drag and drop operation.
[vbnet] Private Sub PictureBox_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles lpic.MouseDown, rpic.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim pictures As PictureBox = CType(sender, PictureBox)

‘IT WILL ACTIVATE THE DRAG AND DROP OPERATION
If Not pictures.Image Is Nothing Then
pictures.DoDragDrop(pictures.Image, DragDropEffects.Move Or DragDropEffects.Copy)
End If
End If
End Sub
[/vbnet] After activating the drag and drop operation, go to the method name and choose the DragEnter for the events.
drogdropform4
Now, you have to activate the copy control of the picture.
[vbnet] Private Sub PictureBox_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lpic.DragEnter, rpic.DragEnter

‘CHECKING THE DRAG CONTENT TO MAKE SURE THAT, THE TYPE IS ACCURATE FOR THIS CONTROL
If (e.Data.GetDataPresent(DataFormats.Bitmap)) Then
‘CHECKING IF THE CTRL KEY WAS PRESSED
‘AND IF THE CTRL KEY IS PRESS PERFORM COPY AND IT IS NOT PERFORM MOVE.
If (e.KeyState And MASKCTRL) = MASKCTRL Then

e.Effect = DragDropEffects.Copy
Else

e.Effect = DragDropEffects.Move
End If
Else
‘THE DROP EFFECT IS REJECTED.
e.Effect = DragDropEffects.None
End If
End Sub
[/vbnet] Go back to the method name again ,choose DragDrop for the events and you have to activate the move control of the picture.
[vbnet] Private Sub PictureBox_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles lpic.DragDrop, rpic.DragDrop

‘THE IMAGE WILL DISPLAY TO THE SELECTED PICTUREBOX.
Dim PIC As PictureBox = CType(sender, PictureBox)
PIC.Image = CType(e.Data.GetData(DataFormats.Bitmap), Bitmap)

‘IF THE PICTURE IN THE PICTUREBOX WAS MOVE, THE OTHER BOX BECOMES EMPTY.
If (e.KeyState And MASKCTRL) <> MASKCTRL Then ‘CHECKING THE CTRL KEY WAS NOT PRESSED.
If sender Is lpic Then
rpic.Image = Nothing
Else
lpic.Image = Nothing
End If
End If
End Sub
[/vbnet] You can download the complete source code.

Facebook Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

This site uses Akismet to reduce spam. Learn how your comment data is processed.