segunda-feira, 14 de maio de 2012

Arrastar e Soltar um componente

Para criar o efeito de arrastar e soltar para componentes de um Form, coloque os seguintes códigos nos eventos correspondente ao componente:

Public Class Form1

     
Dim drag As Boolean
      Dim ptX, ptY As Double

      Private Sub Componente_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseDown

            drag = True
            ptX = e.X
            ptY = e.Y

      End Sub

      Private Sub Componente_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseMove

            If drag = True Then
                  Componente.Location = New Point(Componente.Location.X + e.X - ptX, Componente.Location.Y + e.Y - ptY)                  
                  Me.Refresh()
            End If
     
End Sub


      Private Sub Componente_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Componente.MouseUp

            drag = False

      End Sub

End Class


Se quiser especificar qual botão acionará o efeito de arrastar e soltar, coloque o código abaixo em Componente_MouseDown:


If e.Button = Windows.Forms.MouseButtons.Right Then
      drag = True
      ptX = e.X : ptY = e.Y
End If

Simples. não? Confesso que tirei da página do MSDN.

Um comentário: