Is It possible to create a moveable panel in vb.net? Click with mouse over it and move it everywhere!?!? It's possible? thank u!
James Alvin Thursday, March 29, 2007 5:45 AM
Try this:
Code Snippet
Dim
XPos As Integer
Dim YPos As Integer
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
If ((e.Button And MouseButtons.Left) _
<> MouseButtons.Left)
Then
Return
End If
XPos = (e.X - 8)
YPos = (e.Y - 5)
MyBase.OnMouseDown(e)
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
If ((e.Button And MouseButtons.Left) _
<> MouseButtons.Left)
Then
Return
End If
If ((e.X > (XPos + 5)) _
OrElse ((e.X < (XPos - 5)) _
OrElse ((e.Y > (YPos + 5)) _
OrElse (e.Y < (YPos - 5))))) Then
Me.Panel1.Left = (e.X - 8)
Me.Panel1.Top = (e.Y - 5)
End If
MyBase.OnMouseMove(e)
End Sub
XPos As Integer
Dim YPos As Integer
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
If ((e.Button And MouseButtons.Left) _
<> MouseButtons.Left)
Then
Return
End If
XPos = (e.X - 8)
YPos = (e.Y - 5)
MyBase.OnMouseDown(e)
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
If ((e.Button And MouseButtons.Left) _
<> MouseButtons.Left)
Then
Return
End If
If ((e.X > (XPos + 5)) _
OrElse ((e.X < (XPos - 5)) _
OrElse ((e.Y > (YPos + 5)) _
OrElse (e.Y < (YPos - 5))))) Then
Me.Panel1.Left = (e.X - 8)
Me.Panel1.Top = (e.Y - 5)
End If
MyBase.OnMouseMove(e)
End Sub