Versuch Order auf Textbox zu ziehen für Pfadauslesung

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Versuch Order auf Textbox zu ziehen für Pfadauslesung

    Moin!

    ich wollte mich an Drag-and-Drop wagen um Ordne-Pfade in eine TextBox zu ziehen.

    Habe mich hierzu an Drag & Drop orientiert.

    Die ersten 3 Schritte habe ich auch gemacht.

    Danach sieht mein Code wie folgt aus:

    VB.NET-Quellcode

    1. Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter
    2. e.Effect = DragDropEffects.All
    3. End Sub
    4. Private Sub tb_folder_1_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles tb_folder_1.DragDrop
    5. Dim filestr() As String
    6. Dim str As String
    7. If e.Data.GetDataPresent(DataFormats.FileDrop) Then
    8. filestr = e.Data.GetData(DataFormats.FileDrop)
    9. str = filestr(0)
    10. End If
    11. End Sub


    Dann habe ich den Code ausgeführt und einen Haltepunkt in die erste Zeile von tb_folder_1_DragDrop gelegt.

    Nun einen Ordner per Drag-and-Drop in die TextBox gezogen. Das [+] wird auch angeboten.

    Aber bis zum Haltepunkt kommt der Debugger nicht!

    Was mir noch merkwürdig vorkommt, ist das das [+] nur angeboten wird, wenn für tb_folder_1 der Wert für AllowDrop=false ist!

    Kann mir einer weiterhelfen ?

    Gruß Jan
    Hast Du für tb_folder_1 auch nen DragEnter-EventHandler + Effects festgelegt? Denn Zeile#1-#3 erlaubt ja nur den Drop auf das Formular, aber nicht auf die Form-Controls.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    Moin!

    das ist ja komplierter als erwartet. Da hätte ich gedacht es wäre einfacher zuzuweisen.

    Habe das mal nach "meinem Gefühl" umgestellt.

    VB.NET-Quellcode

    1. Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter, tb_folder_1.DragEnter, tb_folder_2.DragEnter
    2. e.Effect = DragDropEffects.All
    3. End Sub


    Aber das reicht noch nicht aus..... ?

    Gruß Jan
    AllowDrop für die Ziel-CEs ist an? Soll das Formular überhaupt Ziel für DnD sein?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Häufig von mir verwendete Abkürzungen: CEs = control elements (Labels, Buttons, DGVs, ...) und tDS (typisiertes DataSet)
    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht in den Spekulatiusmodus gehen.
    @jan99 Form1 im Designer auf AllowDrop = True stellen.
    ===
    Das Control, in das gedroppt werden soll:
    AllowDrop = True
    und beide Handler: DragEnter und DragDrop.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    VB-Fragen über PN / Konversation werden ignoriert!

    jan99 schrieb:

    Habe mich hierzu an Drag & Drop orientiert.
    ...
    Aber bis zum Haltepunkt kommt der Debugger nicht!
    Dann hast du entweder das Tut nicht gründlich genug studiert, oder es taugt nix.
    Versuchma mit DragDrop-Sample

    Achso - die Lösung des genannten Problems besteht darin, bei der Textbox .AllowDrop auf True zu setzen.

    Aber zieh dir das Tut rein - zu D&D gibts vieles anzumerken.