我在FORM中放置了一个Picturebox,在这个Picturebox中放置了一个Image,我想实现:
在程序执行时,能用鼠标拖着Image自由移动Image的位置,我的代码如下:
'---------------------------------
    Dim dragx As Single
    Dim dragy As Single
    Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single)
        Image1.Picture = Source
        Image1.Move (X - dragx), (Y - dragy)
    End Sub
    Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        dragx = X
        dragy = Y
        Image1.Drag BEGIN_DRAG
    End Sub
'---------------------------------
程序能执行,但是移动Image非常不方便,有时要拖鼠标半天才移动一点,有时干脆不动,我该如何解决?

解决方案 »

  1.   

    '这是拖动pictureBox的例子。在picturebox中拖动image的原理相同。更好的办法是发送消息。
    Option Explicit
    Dim bDown As Boolean
    Dim dX As Single, dY As Single
    Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        bDown = True
        dX = X
        dY = Y
    End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If bDown = True Then Picture1.Move Picture1.Left + X - dX, Picture1.Top + Y - dY
    End SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        bDown = False
    End Sub