Ereignis auslösen, bei Maus über Tabpage - Reiter

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von T-BoneSteak.

    Ereignis auslösen, bei Maus über Tabpage - Reiter

    Hallo Forum,

    Ich habe folgendes Problem: Ich habe eine Tabpage mit mehreren Reitern. Nun möchte ich via Drag n' Drop Items (Knoten eines Treeviews) von Tabpage1 auf Tabpage2 ziehen. Der User hat Tabpage1 geöffnet, klickt den Knoten an und zieht ihn über den Reiter von Tabpage2. Beim Loslassen soll ein Ereignis ausgelöst werden. Jedoch finde ich kein passendes, bzw. bekomm es einfach nicht hin.

    Habe nur ein analog veraltetes Thema gefunden und darum ein neues aufgemacht.

    Hoffe ihr könnt mir helfen.

    Sportliche Grüße

    T-BoneSteak schrieb:

    über den Reiter von Tabpage2
    Werte mal das MouseMove des TabControls aus und sieh nach, ob Du die Fläche der Reiter als Property findest.
    Gugst Du hier.
    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).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hey RodFromGermany,

    Danke für deine Antwort. Konnte mit deiner Hilfe einen guten Sprung nach vorne machen.

    VB.NET-Quellcode

    1. Private Sub TabControl1_MouseMove(sender As Object, e As MouseEventArgs) Handles TabControl1.MouseMove
    2. Dim reiter = TabControl1.GetTabRect(1)
    3. Dim pt = e.Location
    4. If reiter.Contains(pt) Then
    5. MsgBox("jezz aber")
    6. End If
    7. End Sub


    Hiermit kann ich nun Abfragen ob der Cursor über dem Reiter ist. Allerding wenn ich einen Knoten ziehe, kommt das "Nicht-Erlaubt-Zeichen" des Drag n' Drop Events. Somit funktioniert die Abfrage auch nicht mehr. Muss ich nur eine Einstellung ändern oder wie kann ich dieses problem lösen?

    T-BoneSteak schrieb:

    wie kann ich dieses problem lösen?
    Du kannst natürlich beim Mouse_Move die entsprechende TabPage auswählen, dann sollte es gehen.
    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).
    Programmierfragen über PN / Konversation werden ignoriert!
    Moin,

    tut mir leid ich steh vielleicht noch ein bisschen auf dem Schlauch.. Mein Problem woran ich mich momentan aufhalte, ist dass das Mouse_Move-Event gar nicht ausgelöst wird, wenn ich ein Item via Drag and Drop ziehe. Vermute es liegt daran, dass der DragDropEffects.Move aktiv ist. Erst sobald ich mit der normalen Maus über den Reiter fahre, wird das Mouse_Move-Event ausgelöst.

    T-BoneSteak schrieb:

    Mouse_Move-Even
    Probier mal dies:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub TabControl1_MouseMove(sender As Object, e As MouseEventArgs) Handles TabControl1.MouseMove
    3. Dim reiter = TabControl1.GetTabRect(1)
    4. Dim pt = e.Location
    5. If reiter.Contains(pt) Then
    6. Label1.Text = "jezz aber"
    7. Else
    8. Label1.Text = "Tab nix"
    9. End If
    10. End Sub
    11. Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles MyBase.MouseMove
    12. Label1.Text = "Form nix"
    13. End Sub
    14. Private Sub TabControl1_DragEnter(sender As Object, e As DragEventArgs) Handles TabControl1.DragEnter
    15. e.Effect = DragDropEffects.All
    16. End Sub
    17. Private Sub TabControl1_DragOver(sender As Object, e As DragEventArgs) Handles TabControl1.DragOver
    18. Dim reiter = TabControl1.GetTabRect(1)
    19. Dim pt = New Point(e.X, e.Y)
    20. pt = TabControl1.PointToClient(pt)
    21. If reiter.Contains(pt) Then
    22. Label1.Text = "jezz aber Drop"
    23. Else
    24. Label1.Text = "Drop nix" & pt.ToString
    25. End If
    26. End Sub
    27. End Class
    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).
    Programmierfragen über PN / Konversation werden ignoriert!