Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const HTCAPTION = 2
Private Const WM_NCLBUTTONDOWN = &HA1Public Sub Drag_me(Object_Name As Object)
    ReleaseCapture
    SendMessage Object_Name.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&
End Sub如果想托动窗体则在窗口的mouse_down事件中写
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Drag_me Me
End Sub
如果想拖动一个按钮,则:
Private Sub Command1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Drag_me Command1
End Sub

解决方案 »

  1.   

    以下是拖动窗体上的一个Label1的控件:
    Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
        Source.Move X, Y
    End SubPrivate Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Label1.Drag 1
    End Sub
      

  2.   

    你试试在form1上面放一个command1按钮:然后添加下面的代码:
    Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
        Source.Move (X - Source.Width \ 2), (Y - Source.Height \ 2)
    End SubPrivate Sub Form_Load()
        Command1.DragMode = 1
    End Sub