如何在程序中限制某个属性的范围比如:Location,点进内涵更非富
本帖最后由 zzc6913 于 2012-11-18 01:43:00 编辑 编写了一个lable控件的拖动程序,发现有一个bug就是控件可以被拖动到窗体以外的地方,不知如何解决,暂时思路希望能够限制lable.Location的X和Y的值的范围来限制控件的可移动范围,不知道思路对不对。
下面贴上程序,如果还有老师有更好的解决办法,欢迎指导~~
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
If ss = True Then
Dim a, b As Integer
a = mov.X - e.X
b = mov.Y - e.Y
Me.Label1.Location = New Point(Me.Label1.Location.X - a, Me.Label1.Location.Y - b)
ElseIf ss = False Then
Me.Label1.Location = New Point(Me.Label1.Location.X, Me.Label1.Location.Y)
End If
End Sub
Private Sub Label1_Move(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Move
If Me.Label1.Location.X <= 0 Then
Dim a, b As Integer
a = mov.X - Me.Label1.Location.X
b = mov.Y - Me.Label1.Location.Y
Me.Label1.Location = New Point(0, Me.Label1.Location.Y - b)
End If
End Sub