Dynamisch ToolstripItem hinzufügen/entfernen

  • VB.NET
  • .NET (FX) 1.0–2.0

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

    Dynamisch ToolstripItem hinzufügen/entfernen

    Also,

    Ich möchte per klick auf einen Button dynamisch Toolstripitems hinzufügen, mit dem Text den Ich in der TextBox zuvor eingegeben habe.
    Das klappt soweit:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim X As ToolStripMenuItem
    3. X = New ToolStripMenuItem(TextBox1.Text)
    4. X.Text = TextBox1.Text
    5. AddHandler X.Click, AddressOf AddItem
    6. X.CheckOnClick = True
    7. ConnectToToolStripMenuItem.DropDown.Items.Add(X)
    8. End Sub
    9. Private Sub AddItem()
    10. MsgBox(Me.Text)
    11. End Sub


    Bei einem klick auf das Item möchte ich den Text des Items zurückgeben (in einer MsgBox).
    Das klappt nicht, ich bekomme Form1 zurück, da das Me sich nicht auf das erstellte Toolstripitem bezieht sondern auf die Form... Wie kann ich das beheben?

    Desweiteren würde ich gerne wissen ob es eine art OnChanged Event gibt das sich auf die Anzahl der ToolStripitems bezieht.
    Jedes mal wenn ein neues Item hinzugefügt wird, sollen alle in eine Listbox geladen werden.
    Wie kann ich das realsierien?
    Und wie kann ich dann das jeweilige ToolStripitems wieder löschen, wenn ich es in der ListBox anklicke?

    Ich bedanke mich für jegliche Hilfe =)
    C# Developer
    Learning C++
    ​Me referenziert halt leider immer nur auf die aktuelle Instanz der Klasse, in welcher du dich befindest. Was du suchst, ist der ​sender, welchen du dann noch mit ​DirectCast in ein ToolStripItem casten musst.

    Rikudo schrieb:

    Wie kann ich das realsierien?
    Mach das ganze mal testweise im Designer und schreib dann den relevanten Code aus der Prozedur InitializeComponents() in der Datei FormX.Designer.vb ab.
    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!