Wie kann ich verschieben eines Elements durch klicken und halten das Objekt mit der Maus?

Arbeite ich an einem einfachen Programm, das verlangt, dass ich in der Lage sein, um wählen Sie ein Bild-Feld und verschieben Sie es an eine neue Position durch ziehen mit der Maus. Dies ist alle relevanten code habe ich mit kommen derzeit haben. Allerdings, wenn ich das Programm starte versucht es zu verschieben, wo ich will, es zu gehen, dann scheint es, wieder zurück zu seiner vorherigen Position.

Edit: es ist in einem container. Ist dies ohne Relevanz.

Variablen

Dim startx As Integer
Dim starty As Integer
Dim endy As Integer
Dim endx As Integer
Dim finalx As Integer
Dim finaly As Integer
Dim mdown As Boolean
Dim valx As Boolean
Dim valy As Boolean

Code, um das Bild zu verschieben

 Private Sub picbox_MouseDown(Absender Als Object, e As System.Windows.Formulare.MouseEventArgs) Handles picbox.MouseDown 
startx = MousePosition.X 
starty = MousePosition.Y 
mdown = True 
valx = False 
valy = False 
End Sub

Private Sub Main_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove End Sub Private Sub picbox_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles picbox.MouseMove 'Check if mouse=down If mdown = True Then endx = (MousePosition.X - Me.Left) endy = (MousePosition.Y - Me.Top) If valy = False Then starty = endy - sender.top valy = True End If If valx = False Then startx = endx - sender.left valx = True End If sender.left = endx - startx sender.top = endy - starty End If End Sub Private Sub picbox_MouseUp(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles picbox.MouseUp mdown = False valx = False valy = False End Sub

  • Habe versucht den code mit einem einfachen Formular und nur ein Bild angezeigt. Die gute Nachricht ist: Es funktioniert, die schlechte Nachricht ist: ich kann nicht finden, wo ist dein Fehler.
  • Ich habe es in einem layout-container. Könnte dies etwas damit zu tun?
  • Es ist eine winforms-app, richtig? In welcher Art von Steuerelement-container-Sie haben Ihre picturebox? In meinem test, ohne container, direkt auf den client-Bereich des Formulars, funktioniert alles wie erwartet.
InformationsquelleAutor nick122 | 2012-06-25
Schreibe einen Kommentar