Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: Eleкtro en 7 Noviembre 2012, 14:40 pm



Título: (Solucionado) [VS2012] ¿Como hacer un form con "borderstyle = none" moveable
Publicado por: Eleкtro en 7 Noviembre 2012, 14:40 pm
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
  1. Public Class Form1
  2.    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
  3.        Label2.Text = "X: " & MousePosition.X
  4.        Label3.Text = "Y: " & MousePosition.Y
  5.    End Sub
  6.  
  7.    Sub Form1_KeyPress(ByVal sender As Object, _
  8.      ByVal e As KeyPressEventArgs) Handles Me.KeyPress
  9.        If e.KeyChar >= ChrW(3) Then
  10.            Clipboard.SetDataObject(Label2.Text & " " & Label3.Text)
  11.        End If
  12.    End Sub
  13.  
  14.    Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs)
  15.        ' SUPONGO QUE ESTE ES EL EVENTO CORRECTO PARA MI PROPÓSITO...
  16.    End Sub
  17. End Class

Un saludo!


Título: Re: [VS2012] ¿Como hacer un form con "borderstyle = none" moveable?
Publicado por: .::IT::. en 7 Noviembre 2012, 16:50 pm
Código
  1.    Private ArrastrarForm As Boolean
  2.    Private PosicionMouseHeader As Point
  3.    Private tmpPoint As Point
  4.  
  5.    Private Sub Form1_MouseDown(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown
  6.        If e.Button = Windows.Forms.MouseButtons.Left Then
  7.            ArrastrarForm = True
  8.            PosicionMouseHeader = e.Location
  9.        End If
  10.    End Sub
  11.  
  12.    Private Sub Form1_MouseMove(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
  13.        If ArrastrarForm Then
  14.            tmpPoint = Me.Location + e.Location - PosicionMouseHeader
  15.            Me.Location = tmpPoint
  16.        End If
  17.    End Sub
  18.  
  19.    Private Sub Form1_MouseUp(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseUp
  20.        If e.Button = Windows.Forms.MouseButtons.Left Then
  21.            ArrastrarForm = False
  22.        End If
  23.    End Sub
  24.  

Espero te sirva Saludos!!!!!!


Título: Re: [VS2012] ¿Como hacer un form con "borderstyle = none" moveable?
Publicado por: Eleкtro en 7 Noviembre 2012, 17:02 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