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