首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

label控件可以用鼠标拖动,但没有边界,附代码,请老师们给点意见怎么定义边界~

2012-12-25 
label控件可以用鼠标拖动,但没有边界,附代码,请老师们给点意见如何定义边界~~~~~Public Class tftestDim s

label控件可以用鼠标拖动,但没有边界,附代码,请老师们给点意见如何定义边界~~~~~


Public Class tftest
    Dim ss As Boolean
    Dim mov As Point
    Private Sub Label1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
        ss = True
        mov = New Point(e.X, e.Y)
    End Sub

    Private Sub Label1_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseUp
        ss = False
    End Sub

    Private Sub Label1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
        Dim a, b As Integer
        a = mov.X - e.X
        b = mov.Y - e.Y
        TextBox1.Text = a
        TextBox2.Text = b
        If ss = True And Me.Label1.Left >= 10 And Me.Label1.Left < Me.Width - Me.Label1.Width Then
            Me.Label1.Left = Me.Label1.Left - a
        End If
        If ss = True And Me.Label1.Top > 0 And Me.Label1.Top < Me.Height - Me.Label1.Height Then
            Me.Label1.Top = Me.Label1.Top - b
        End If
    End Sub
    Private Sub Label1_Move(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Move
        If Me.Label1.Left < 10 Then
            Me.Label1.Left = 10
        End If
    End Sub
End Class


以上是代码,实现label用鼠标在窗体上拖动,但问题是目前代码不能产生边界,设置了边界范围,但还是可以拖出去。如果用label1_move这个事情中的代码,可以实现边界,但当控件拖出边界的范围时,会出现花屏现像。如下:

[解决办法]
自己搞定了~~~

热点排行