读书人

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

发布时间: 2012-03-24 14:00:46 作者: rapoo

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

[解决办法]
可以用窗体来包含控件。
[解决办法]
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

读书人网 >VB Dotnet

热点推荐