在运行时如何实现对一个控件的拖动

在运行时怎么实现对一个控件的拖动?
希望实现对窗体上一个控件的拖动,象窗体设计时拖动控件一样。

------解决方案--------------------
可以用窗体来包含控件。
------解决方案--------------------
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
For i = 1000 To 100 Step -2
TextBox1.Left = i * 2
TextBox1.Top = i
Next
End Sub


------解决方案--------------------
控件.AllowDrop = True


具体要怎么操作,再另外编码!!!

------解决方案--------------------
找个效果好一些的第三方控件
------解决方案--------------------
Form_Load:
Dim vObj As Control
For Each vObj In Me.Controls
AddHandler vObj.MouseDown, AddressOf Controls_Down
AddHandler vObj.MouseMove, AddressOf Controls_Move
Next
------------------
Private Sub Controls_Down(ByVal sender As Object, ByVal e As MouseEventArgs)
'获得鼠标按下时的坐标
vPoint = New Point(e.X, e.Y)
'发送当前控件到Z顺序的前面
sender.BringToFront()
End Sub

Private Sub Controls_Move(ByVal sender As Object, ByVal e As MouseEventArgs)
'当用鼠标拖动当前控件时,则移动控件
If Form.MouseButtons = MouseButtons.Right Then
CType(sender, Control).Location = New Point(sender.Left + e.X - vPoint.X, sender.Top + e.Y - vPoint.Y)
End If
End Sub