(Solucionado) [VS2012] ¿Como hacer un form con "borderstyle = none" moveable

Iniciado por Eleкtro, 7 Noviembre 2012, 14:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

Hola,

Estoy aprendiendo este lenguaje y ya tengo mi primera app creada, pero me falta un detalle que no consigo, poder mover la ventana del form con "borderstyle=none"

He buscado en google pero solo encuentro referencias antiguas para VB y VS2005, y no he sabido como acoplarlas a mi app la verdad, siempre me da error de "hWND".

¿Alguien me hecha una mano?

Código (vb) [Seleccionar]
Public Class Form1
   Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
       Label2.Text = "X: " & MousePosition.X
       Label3.Text = "Y: " & MousePosition.Y
   End Sub

   Sub Form1_KeyPress(ByVal sender As Object, _
     ByVal e As KeyPressEventArgs) Handles Me.KeyPress
       If e.KeyChar >= ChrW(3) Then
           Clipboard.SetDataObject(Label2.Text & " " & Label3.Text)
       End If
   End Sub

   Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs)
       ' SUPONGO QUE ESTE ES EL EVENTO CORRECTO PARA MI PROPÓSITO...
   End Sub
End Class


Un saludo!








.::IT::.

#1
Código (vbnet) [Seleccionar]

   Private ArrastrarForm As Boolean
   Private PosicionMouseHeader As Point
   Private tmpPoint As Point

   Private Sub Form1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
       If e.Button = Windows.Forms.MouseButtons.Left Then
           ArrastrarForm = True
           PosicionMouseHeader = e.Location
       End If
   End Sub

   Private Sub Form1_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
       If ArrastrarForm Then
           tmpPoint = Me.Location + e.Location - PosicionMouseHeader
           Me.Location = tmpPoint
       End If
   End Sub

   Private Sub Form1_MouseUp(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
       If e.Button = Windows.Forms.MouseButtons.Left Then
           ArrastrarForm = False
       End If
   End Sub


Espero te sirva Saludos!!!!!!
Simplemente .::IT::.

Eleкtro

#2
Cita de: .::IT::. en  7 Noviembre 2012, 16:50 PM
Espero te sirva Saludos!!!!!!

Funciona perfecto, mil gracias!!!


EDITO: Una pregunta, como puedo utilizarlo en otros elementos del form? verás, tengo un picturebox que ocupa casi todo el form, y si clicko en la imagen no puedo mover el form.

Estoy intentando ver si puedo hacerlo solo mientras tanto...

Gracias de nuevo

EDITO2: Ya está, ya lo he conseguido jeje, no me aclaro con lo del "handles" todavía