level 1
zzc4587
楼主
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
用这个代码可以实现拖动,但没法限制范围,虽然定义了.left的大小值,但还是可以拖出界,或者一旦停在界上,就不能再拖动了。请问老师们如何解决~~~~怎么能让控件不能拖出窗体
2012年11月24日 13点11分
1
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
用这个代码可以实现拖动,但没法限制范围,虽然定义了.left的大小值,但还是可以拖出界,或者一旦停在界上,就不能再拖动了。请问老师们如何解决~~~~怎么能让控件不能拖出窗体