VB Listboxen mit DragDrop nur in definierte boxen

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    VB Listboxen mit DragDrop nur in definierte boxen

    Moin moin, ich hoffe Ihr könnt mir weiter helfen..
    Ich habe ca. 50 Listboxen, die 2 Hauptlistboxen beziehen ihr Daten aus einer Exel. Von dort aus können die Daten zu den anderen Listboxen per drag and drop gezogen und von dort aus auch in andere gezogen werden was Problemlos funktioniert.
    Nun soll es eigentlich so sein das sich die Elelemte nur in 2 "Listboxgruppen" bewegen dürfen sollen. Also das Elemente aus den Lisboxen aus der Gruppe A in jede Listbox der Gruppe A gezogen werden können, aber nicht in Listboxen der Gruppe B. Gleiches natürlich auch umgekehrt.
    Leider komme ich da nicht weiter, ich habe schon einiges mit BoxGroup ausprobiert aber zu keinen Ergebnis gekommen...

    So sieht der DragDrop Code aus für die ca.50 Listboxen.

    VB.NET-Quellcode

    1. Private Sub ListBox1_MouseDown(sender As Object, e As Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
    2. If (ListBox1.Items.Count = 0) Then
    3. Return
    4. Else
    5. Dim selecteddata As String = ListBox1.Items(ListBox1.SelectedIndex.ToString())
    6. Dim dde As DragDropEffects
    7. dde = DoDragDrop(selecteddata, DragDropEffects.Move)
    8. If (dde = DragDropEffects.Move) Then
    9. ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)
    10. End If
    11. End If
    12. End Sub
    13. Private Sub ListBox1_DragDrop(sender As Object, e As DragEventArgs) Handles ListBox1.DragDrop
    14. If (e.Data.GetDataPresent(DataFormats.StringFormat)) Then
    15. Dim str As String = CStr(e.Data.GetData(DataFormats.StringFormat))
    16. ListBox1.Items.Add(str)
    17. End If
    18. End Sub
    19. Private Sub ListBox1_DragOver(sender As Object, e As DragEventArgs) Handles ListBox1.DragOver
    20. e.Effect = DragDropEffects.Move
    21. End Sub


    Mfg Pico
    naja, im DragOver musst du feststellen, ob an der Position gedroppt werden darf.
    Ist das nicht der Fall musste natürlich DragDropEffects.None setzen.

    Die Geschichte ist enorm knifflig, daher habich Tutorial gemacht mit einem Vorschlag, wie das mit geringstmöglichem Aufwand (der Aufwand ist dennoch ziemlich hoch) abzuhandeln ist.
    Das Tut geht generell über D&D.
    Ab hier fängt speziell D&D innerhalb der Anwendung an: