我早年写的代码,不太中看,您将就点
移得好像很准。Private Sub pi_DragDrop(Source As Control, x As Single, y As Single)
   pi.Move x - zi, y - zj
End SubPrivate Sub pi_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
   If Button = 1 Then
    zi = x - pi.Left
    zj = y - pi.Top
   End If
End Sub

解决方案 »

  1.   

    Source.Move (X - dragX * 3), (Y - dragY * 3)您改成这样看看就知道有效果的,不是没有传到
    dragx和dragy是label内的X,Y,值太小,反应不出来了
      

  2.   

    Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
    If TypeOf Source Is CommandButton Then
    Source.Move X, Y
    End If
    End SubPrivate Sub Form_Load()
    Command1.DragMode = 1
    End Sub
      

  3.   

    楼上的兄弟还没有解决我的问题:我现在江源代码发出来,请各位亮招。测试工程中的form1中的代码如下:(ctrResistance是个activeX 控件)
    Dim dragX As Single, dragY As Single
    Private Sub ctrResistance1_mousedown()
        ctrResistance1.Drag 1
       dragX = X
       dragY = Y
    End SubPrivate Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
        Source.Move (X - dragX), (Y - dragY)
        
    End SubctrResistance控件的代码如下:Option Explicit
    Public Event mousedown()
    Private Sub UserControl_Initialize()
    '调整shape1的大小和用户控件大小一样
      Shape1.Move 0, 0, ScaleWidth, ScaleHeight
    End SubPrivate Sub UserControl_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     RaiseEvent mousedown
    End Sub