Ich muss in der Lage sein, meine picturebox mit einem Bild um meine Winform in vb.net ziehen und ablegen.ziehen Picturebox in Winform auf Laufzeit
Antwort
Dies ist in C#, sollte aber einfach genug sein, um in VB.Net zu replizieren.
private int currentX, currentY;
private bool isDragging = false;
private void myPictureBox_MouseDown(object sender, MouseEventArgs e)
{
isDragging = true;
currentX = e.X;
currentY = e.Y;
}
private void myPictureBox_MouseMove(object sender, MouseEventArgs e)
{
if (isDragging)
{
myPictureBox.Top = myPictureBox.Top + (e.Y - currentY);
myPictureBox.Left = myPictureBox.Left + (e.X - currentX);
}
}
private void myPictureBox_MouseUp(object sender, MouseEventArgs e)
{
isDragging = false;
}
das ist absolut genial vielen Dank –
übrigens Ihr Beispiel ist viel eleganter und einfacher als Microsoft (die nicht einmal mit Picturebox funktioniert) http://msdn.microsoft.com/en-us/library/ms973845.aspx –
I Frage, ob dieser Code funktioniert oder nicht, da er nicht vom Koordinatenraum des Bildbox-Clients in einen gemeinsamen Koordinatenraum (Bildschirmbereich) konvertiert wird. – user79755
Hier einige VB.NET
Private IsDragging As Boolean = False
Private StartPoint As Point
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
StartPoint = PictureBox1.PointToScreen(New Point(e.X, e.Y))
IsDragging = True
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If IsDragging Then
Dim EndPoint As Point = PictureBox1.PointToScreen(New Point(e.X, e.Y))
PictureBox1.Left += (EndPoint.X - StartPoint.X)
PictureBox1.Top += (EndPoint.Y - StartPoint.Y)
StartPoint = EndPoint
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
IsDragging = False
End Sub
das ist auch sehr gut, aber ich frage mich, ob Sie die Antwort auf diese Frage wussten; http://stackoverflow.com/questions/1087130/moving-image-on-web-page –
Code ähnlich dem gegebenen Antworten gibt es in diesem DreamInCode.com thread. Eine andere Sache die Thread-Adressen ist die Bildbox innerhalb der Grenzen des Formulars zu halten und die Größe der Bildbox.
- 1. Ziehen während der Laufzeit
- 2. Winform verschiebe ein Bild in eine Picturebox
- 3. winform picturebox Bild zeigt leere C#
- 4. WinForm Update beim Ziehen mit ReleaseCapture
- 5. Ändern der Größe der winform zur Laufzeit
- 6. Mausereignis auf picturebox
- 7. Wie kann ich picturebox Bild zur Laufzeit ändern
- 8. Versteckte Steuerelemente in Winform finden und zur Laufzeit sichtbar machen?
- 9. Scratch Bild auf PictureBox C#
- 10. Clone Winform Steuerelement
- 11. PictureBox Hintergrund gleich anderen PictureBox beim Verschieben?
- 12. Flackern auf winform UI
- 13. PictureBox in Weiß testen
- 14. Drag-in WinForm Problem
- 15. WinForm-Benutzersteuerelemente - Drag Drop
- 16. PictureBox Fehler mit Multi-Treading
- 17. Drehen picturebox
- 18. Kann eine PictureBox animiertes GIF in der Windows-Anwendung anzeigen?
- 19. PictureBox Layout-Problem in C#
- 20. Bild hochladen von PictureBox auf FTP
- 21. Zeichnen Sie Linien auf einer PictureBox
- 22. wie matlab figur in winform anwendung plotten?
- 23. Erstellen von 1 Kundensteuerung mit Textfeld und PictureBox
- 24. Deaktivieren Minimieren & Maximieren auf WinForm?
- 25. Klicken Sie auf Ereignisse in Winform UserControl
- 26. Wie bekomme ich Bildlaufleisten auf Picturebox
- 27. Bild ohne Hintergrund auf winform
- 28. Bitmap Repaint in Picturebox Lagging
- 29. .NET Winform Tastatursteuerung
- 30. PictureBox anzeigen und Entsorgen
Per Drag & Drop nehme ich an, Sie eigentlich gemeint, nur das Bild zu bewegen? Ziehen und Fallenlassen ist meiner Meinung nach etwas ganz anderes. – GenericTypeTea