lunes, 5 de marzo de 2012

Drag & Drop (Arrastrar y Soltar) de texto en VB.NET


Voy a partir este blog con unos ejemplos de Drag&Drop en VB.Net, en los que veremos como arrastrar texto, Arrastrar una imagen, arrastrar una imagen externa a nuestra aplicación, arrastrar archivos y arrastres entre dos listas.

Comentarios:

Dentro de las empresas e instituciones en las que he estado, no he visto mayormente aplicaciones que permitan arrastrar y colocar objetos, siendo éste, un método habitual para los usuarios arraigados al ratón y para los no tanto, así que no se si será por falta de información o por falta de ganas que a las aplicaciones no les agregan esta funcionalidad pero les quita a los usuarios una funcionalidad a la cual están acostumbrados bajo el entorno Windows.

Bueno, veamos lo fácil y sencillo que es todo esto.

Arrastre de texto

Agregamos 2 controles de texto al formulario y cambiamos la propiedad AllowDrop a verdadero del segundo control.


Public Class Form1

    Private blnBotonPresionado As Boolean = False

    Private Sub TextBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseDown
        'Aplicamos la funcionalidad solamente al presionar el botón izquiedo del mouse
        If e.Button = Windows.Forms.MouseButtons.Left Then
            'Ponemos la variable a verdadero que nos indicará que el botón del mouse está presionado
            blnBotonPresionado = True
        End If

    End Sub

    Private Sub TextBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TextBox1.MouseMove
        If blnBotonPresionado Then
            'Iniciamos el arrastre
            'A través del método DoDragDrop indicamos la información que arrastraremos y
            'si lo copiamos, movemos o más. En este caso copiamos.
            TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy)
        End If
        blnBotonPresionado = False
    End Sub

    Private Sub TextBox2_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox2.DragEnter
        'Verificamos información que está siendo soltada dentro del control.
        If (e.Data.GetDataPresent(DataFormats.Text)) Then
            'Mostramos el puntero de copia en una operación arrastrar y soltar.
            e.Effect = DragDropEffects.Copy
        Else
            'Mostramos el puntero normal.
            e.Effect = DragDropEffects.None
        End If
    End Sub

    Private Sub TextBox2_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox2.DragDrop
        'En esta acción se pega el texto en en control de destino.
        TextBox2.Text = e.Data.GetData(DataFormats.Text)
    End Sub

End Class

Lo ejecutamos y escribimos en el primer control de texto y lo arrastramos al segundo.

No hay comentarios:

Publicar un comentario