none
custom control mit context menu ausstatten RRS feed

  • Frage

  • Ich habe ein custom control von treeview abgeleitet und mit eigenen EIgenschaften ausgestattet.

    In dem Entwurfsfenster des Controls ist also ein Treeview-Control platziert.

    Das funktioniert auch schon ganz gut. Ich kann das custom-control auf ein eigenes Formular platzieren und mit Knoten befüllen.

    Dazu gehört auch ein Context_menü, welches die Menüpunkte bereit hält mit denen die Knoten bearbeitet werden können.

    ENtsprechend wurde zusätzlich ein Context-Menu platziert.

    Obwohl ich in dem Treeview des Custom-Controls das Context-Menu eingetragen habe, öffnet sich nichts.

    Was mache ich falsch?

    Mittwoch, 20. März 2019 19:10

Antworten

  • Hi,
    Dein Problem ist mit einer einfachen Demo nicht reproduzierbar. Du solltest etwas genauer beschreiben und ggf. Code posten, um Dein Problem zu erkennen. Hier meine Demo:

    Public Class Form05
    
      Private tv As New Form05TreeView With {.Dock = DockStyle.Fill}
    
      Private Sub Form05_Load(sender As Object, e As EventArgs) Handles Me.Load
        Me.Controls.Add(tv)
        For Each n In GetData
          tv.Nodes.Add(n)
        Next
        Dim cm As New ContextMenu
        cm.MenuItems.Add(New MenuItem("Menü Item"))
        tv.ContextMenu = cm
      End Sub
    
      Private Iterator Function GetData() As IEnumerable(Of TreeNode)
        For i = 1 To 10
          Yield New TreeNode($"Knoten {i}")
        Next
      End Function
    
    End Class
    
    Public Class Form05TreeView
      Inherits TreeView
    End Class


    --
    Viele Grüsse / Best Regards
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    • Als Antwort markiert NicoNi Donnerstag, 21. März 2019 07:06
    Mittwoch, 20. März 2019 19:51

Alle Antworten

  • Hi,
    Dein Problem ist mit einer einfachen Demo nicht reproduzierbar. Du solltest etwas genauer beschreiben und ggf. Code posten, um Dein Problem zu erkennen. Hier meine Demo:

    Public Class Form05
    
      Private tv As New Form05TreeView With {.Dock = DockStyle.Fill}
    
      Private Sub Form05_Load(sender As Object, e As EventArgs) Handles Me.Load
        Me.Controls.Add(tv)
        For Each n In GetData
          tv.Nodes.Add(n)
        Next
        Dim cm As New ContextMenu
        cm.MenuItems.Add(New MenuItem("Menü Item"))
        tv.ContextMenu = cm
      End Sub
    
      Private Iterator Function GetData() As IEnumerable(Of TreeNode)
        For i = 1 To 10
          Yield New TreeNode($"Knoten {i}")
        Next
      End Function
    
    End Class
    
    Public Class Form05TreeView
      Inherits TreeView
    End Class


    --
    Viele Grüsse / Best Regards
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    • Als Antwort markiert NicoNi Donnerstag, 21. März 2019 07:06
    Mittwoch, 20. März 2019 19:51
  • Danke für die Antwort.

    Bei mir ist das Treeview auf dem user control angeordnet.

    Ich musste den ContextMenu dem user control zuordnen. Zuvor hatte ich es dem Treeview zugeordnet.

    Jetzt scheint es zu funktionieren.

    Donnerstag, 21. März 2019 07:06