Continuando con lo que había empezado les dejo un ejemplo de arrastrar una imagen de un PictureBox a otro.
Para esto agregamos dos de los controles mencionados a un formulario y les cambiamos las propiedades en tiempo de diseño de BorderStyle a FixedSingle y SizeMode a StretchImage y copiamos el siguiente código dentro de la clase Form1:
Private blnBotonPresionado As Boolean
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Habilitamos el arrastre para el control PictureBox2 (No lo tiene permitido en tiempo de diseño)
PictureBox2.AllowDrop = True
'Cargamos la imagen en el primer control que se encuentra dentro de la carpeta del programa
PictureBox1.Load("Puesta de sol.jpg")
End Sub
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
'Verificamos si se presionó el botón izquierdo del mouse.
If e.Button = Windows.Forms.MouseButtons.Left Then
'Si existe o hay una imagen en el control
If Not PictureBox1.Image Is Nothing Then
'Determinamos que el botón se encuentra presionado.
blnBotonPresionado = True
End If
End If
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If blnBotonPresionado Then
'Iniciamos el arrastre y permitimos que se pueda copiar o mover la imagen.
PictureBox1.DoDragDrop(PictureBox1.Image, DragDropEffects.Copy Or DragDropEffects.Move)
End If
blnBotonPresionado = False
End Sub
Private Sub PictureBox2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragEnter
If e.Data.GetDataPresent(DataFormats.Bitmap) Then
'Verificamos la tecla control.
If e.KeyState = 9 Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.Move
End If
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub PictureBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop
'Asignamos la imagen al control PictureBox2.
PictureBox2.Image = e.Data.GetData(DataFormats.Bitmap)
'Si la tecla control no está presionada, borramos la fuente de la imagen.
If Not e.KeyState = 8 Then
PictureBox1.Image = Nothing
End If
End Sub
Una vez escrito el código anterior, lo ejecutamos y lo probamos arrastrando la imagen izquieda hasta el control de la derecha.
No hay comentarios:
Publicar un comentario