Drag And Drop mit Pictureboxen, die per "Controls" erzeugt werden?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von bondi.

    Drag And Drop mit Pictureboxen, die per "Controls" erzeugt werden?

    Hallo Forum,

    ich verwende seit einigen Tagen Visual Basic 2010 Express und habe nun eine Frage.

    Ich finde mit Google einiges zum Thema "Picturebox Drag And Drop", aber die Pictureboxen werden in den Beispielen immer "von Hand" im Formular platziert. Meine Vorgehensweise ist aber eine andere:

    Ein Formular enthält einen SplitContainer, in dem sich unter anderem ein TableLayoutPanel mit neun Spalten und neun Zeilen befindet. Dieses Raster fülle ich per Code mit Pictureboxen, die als "Controls" erzeugt werden. Diese Pictureboxen sollen per Drag And Drop mit einem (angrenzenden) Feld des Rasters vertauscht werden (können).

    VB.NET-Quellcode

    1. Public Class frmSpielfeld
    2. ...
    3. ' objekte der class definieren
    4. Dim ctrSpielstein As Control
    5. Dim dicSpielstein As New Dictionary(Of Integer, Image)
    6. Dim rndZufallszahl As New Random
    7. ...
    8. Private Sub Spielsteine_Anzeigen()
    9. ' variablen der sub definieren
    10. Dim intSpalte As Integer
    11. Dim intZeile As Integer
    12. ' sichtbare spielsteine generieren
    13. For intZeile = 5 To 13
    14. For intSpalte = 5 To 13
    15. ' spielstein erzeugen
    16. ctrSpielstein = New PictureBox
    17. ' spielstein initialisieren
    18. With ctrSpielstein
    19. .AllowDrop = True
    20. .BackgroundImage = dicSpielstein(intSpielsteine(intZeile, intSpalte))
    21. .Height = 72
    22. .Tag = intSpielsteine(intZeile, intSpalte)
    23. .Width = 64
    24. End With
    25. ' spielstein anzeigen
    26. tblSpielfeld.Controls.Add(ctrSpielstein, intSpalte - 5, intZeile - 5)
    27. Next
    28. Next
    29. End Sub
    30. ...
    31. End Class

    Hat jemand einen (idealerweise deutschsprachigen) Link für mich?

    Gruß Peter

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „bondi“ () aus folgendem Grund: VB-Code eingefügt

    Vermutlich fehlen dir die Event-Handler, um das Drag-Drop zu verarbeiten?

    VB.NET-Quellcode

    1. Dim ctrSpielstein As Control

    As PictureBox!

    VB.NET-Quellcode

    1. ' spielstein anzeigen
    2. AddHandler ctrSpielstein.DragEnter, AddressOf MeineDragEnterMethode
    3. AddHandler ctrSpielstein.DragDrop, AddressOf MeineDragDropMethode
    4. ' usw
    5. tblSpielfeld.Controls.Add(ctrSpielstein, intSpalte - 5, intZeile - 5)