控件的移动!

   Dim MousePos2 As Point '定义鼠标位置变量

    Dim draging As Boolean = False

    Dim DragRect As Rectangle

  

    Private Sub Button2_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button2.MouseDown

        If draging = False Then

            draging = True

            MousePos2 = New Point(MousePosition.X - Left - Button2.Left, MousePosition.Y - Top - Button2.Top) '鼠标点在按钮上时相对按钮的位置

            MakeRect()

        End If

    End Sub

 

 

 

 

 

    Private Sub MakeRect()

        'new 方法的参数表示指定矩形区域的左上角位置和和大小(宽和高)

        'ClientSize是工作区的大小()

 

 

 

 

 

        DragRect = New Rectangle(Left + MousePos2.X, Top + MousePos2.Y, ClientSize.Width - Button2.Width, ClientSize.Height - Button2.Height) ‘这个区域就是按钮所能活动的最大区域.

    End Sub

 

 

 

 

 

    Private Sub Button2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button2.MouseMove

        If draging Then

            If Me.MousePosition.X < DragRect.Left Then

                Button2.Left = 0 '如果想要将其向左移动出窗体,则移动到左边缘

            ElseIf MousePosition.X > DragRect.Right Then

                Button2.Left = ClientSize.Width - Button2.Width '想向右移动出去,则移动到右边缘

            Else

                Button2.Left = MousePosition.X - Left - MousePos2.X

            End If

 

 

 

 

 

            If MousePosition.Y < DragRect.Top Then

                Button2.Top = 0 '同理,向上移动也不允许超出上边界

            ElseIf MousePosition.Y > DragRect.Bottom Then

                Button2.Top = ClientSize.Height - Button2.Height  '向下移动不可以超出下边界

            Else

                Button2.Top = MousePosition.Y - Top - MousePos2.Y

            End If

        End If

    End Sub

 

 

 

 

 

    Private Sub Button2_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button2.MouseUp

        draging = False

    End

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值