Treeview SelectedNode beim einfachen, ersten Klick nicht richtig

  • VB.NET

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

    Treeview SelectedNode beim einfachen, ersten Klick nicht richtig

    Huhu,

    ich nutze das VS 2015 und habe mit Treeview etwas ausprobieren wollen, aber ich habe ein sehr unangenehmes und wahrscheinlich sehr einfaches Problem.

    Ich habe einfach eine Treeview gesetzt und ein paar Nodes hinzugefügt. Soweit so gut!

    Sobald ich auf eine Node (egal ob Child oder root Node) klicke, soll einfach der ausgewählte Node auf einem Label stehen.

    Quellcode

    1. Private Sub TreeView1_MouseDown(sender As Object, e As MouseEventArgs) Handles TreeView1.MouseDown
    2. Label1.Text = TreeView1.SelectedNode.Text
    3. End Sub


    Soweit funktioniert das, allerdings nur nach dem zweiten Klick auf eine Node.

    D.h., drücke ich nur einmal auf irgendeine Node, so ändert sich nichts, erst nach dem zweiten Klick registriert die MouseDown Abfrage das Selected.

    MouseClick hat auch nichts gebracht.


    Ich hoffe, jemand kann erklären, wieso das erst beim zweiten Klick registriert wird.

    MfG
    Semi
    Okay, das AfterSelect hat mich irritiert, da es ja auch einen Doubeclick gab, sowie einen "einfachen MouseClick", ging ich davon aus, dass AfterSelect eine andere Bedeutung hat.

    Hier ist der richtige Code:

    Quellcode

    1. Private Sub TreeView1_AfterSelect(sender As Object, e As TreeViewEventArgs) Handles TreeView1.AfterSelect
    2. Label1.Text = TreeView1.SelectedNode.Text
    3. End Sub
    4. '''Das gleiche Markieren und SelectedNode.Text soll auch mit rechter Maustaste funktionieren, aber das habe ich auch so hingekriegt!
    5. Private Sub TreeView1_NodeMouseClick(sender As Object, e As TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
    6. If e.Button = MouseButtons.Right Then
    7. Dim info As TreeViewHitTestInfo
    8. info = TreeView1.HitTest(e.Location)
    9. Dim selectnode As TreeNode = info.Node
    10. TreeView1.SelectedNode = selectnode
    11. Label1.Text = selectnode.Text
    12. End If
    13. End Sub



    VIELEN DANK!

    mox schrieb:

    was passiert
    Handles TreeView1.AfterSelect
    @Semiconductor Musst Du händisch erzeugen:

    VB.NET-Quellcode

    1. Private Sub TreeView1_Click(sender As Object, e As EventArgs) Handles TreeView1.Click
    2. End Sub

    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!