Menustrip wichtige frage ?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von dreamboy5883.

    Menustrip wichtige frage ?

    Hallo Community,

    ich habe auf meiner Form ein MenuStrip,

    was folgende Punkte hat:

    1. File

    2.Extras

    diese sind nur ein teil von dem menustrip.

    Ich möchte jetzt unter Extras weitere Punkte hinzufügen,

    dies soll aber während der Laufzeit des Programms Passieren.

    Ich hoffe einer kann mir ein Code geben wie ich das bewerkstellen kann.



    Edit,

    Thema hat sich erledigt, sorry für die frage.

    Habe falsch gesucht hier im Forum, daher keine Ergebnisse gehabt.



    Dies ist der Code, der das realisieren kann:

    VB.NET-Quellcode

    1. ExtrasToolStripMenuItem.DropDown.Items.Add("Favorit1")
    Neue Frage,

    ich lass ja neue einträge wehrend der Laufzeit unter Extras hinzufügen,

    nun möchte ich wenn man dann auf ein Eintrag klickt,

    das sich dann eine Aktion zum Beispiel eine MsgBox öffnet.

    Wie bewerkstellige ich das jetzt?
    Als erstes erstellst du so dein neues MenuStripItem oder dein MenuStripDropDown:

    VB.NET-Quellcode

    1. Dim NeuesMenuItem As New ToolStripMenuItem("NeuesMenuItem") 'Dein Neues ToolStripMenuItem
    2. NeuesMenuItem.Owner = MenuStrip1 'Hier wirds zugeordnet
    3. NeuesMenuItem.DropDownItems.Add("NeuesDropDown") 'Und ein neues DropDownItems
    4. AddHandler NeuesMenuItem.DropDown.Click, AddressOf NeuesMenuItemClicked 'Und hier ein Handler, damit auch das Click Ereignis abgefangen wird.


    Dann schreibst du in das MenuStrip.ItemClicked-Ereignis folgenden Code:

    VB.NET-Quellcode

    1. If e.ClickedItem.Text = "NeuesMenuItem" Then 'Hier wertest du aus, welches MenuItem geklickt wurde
    2. 'Ausführen
    3. End If


    Und dann kommt noch dein NeuesMenuItemClicked-Sub, mit dem du die Klicks deiner neues DropDownItems kontrollierst:

    VB.NET-Quellcode

    1. Private Sub NeuesMenuItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
    2. 'Auswerten
    3. End Sub


    lg
    Sorry,

    ich glaub ich habe meine 2 frage etwas undeutlich gestellt.

    Die menü einträge, die ich mit denn Code:

    VB.NET-Quellcode

    1. ExtrasToolStripMenuItem.DropDown.Items.Add(lesen_wort)

    in Extras einlese, kommen aus einer ini Datei.
    Daher weiß ich nicht wie die einträge lauten.
    Weil diese sich ja ständig ändern können.
    Ja und, was ist da jetzt anders??

    VB.NET-Quellcode

    1. ExtrasToolStripMenuItem.DropDown.Items.Add(lesen_wort)
    2. AddHandler ExtrasToolStripMenuItem.DropDown.Click, AddressOf DropDownClicked


    Und dann erstellst du folgenden Sub:

    VB.NET-Quellcode

    1. Private Sub DropDownClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
    2. MsgBox("Ja, es hat geklappt xD")
    3. End Sub


    Falls du mehrere Einträge in deiner ini-Datei hast, dann lässt du den 1. Code einfach in einer Schleife ausführen.

    lg
    Schuldige,

    aber irgendwie verstehe ich die ganze Sache nicht so ganz.

    Sagen wir in der ini steht ein Name von ein Spiel.

    Dazu dann ein pfad zur exe des Spiels.

    Davon sagen wir aber 5 oder 6 einträge.

    Wenn ich jetzt aber auf denn ersten dropdown Eintrag klicke und das ist das Spiel zum Beispiel WoW,

    dann soll er die dazugehörige exe starten.

    Genauso bei denn anderen Einträgen.



    Edit:

    Habe das Problem nun mit einer combobox gelöst,

    danke allen für die wunderbare Hilfe.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „dreamboy5883“ ()

    Bitte schön,

    das ist jetzt mein Code, womit ich das mit dem Menustrip aus dem weg gehe.

    Ist bestimmt nicht die beste Losung,

    aber es funktioniert.
    [vb]
    If IO.File.Exists(ini) Then
    ComboBox1.Items.Clear()
    ComboBox1.Items.Add("Ausw„hlen")
    ComboBox1.SelectedIndex = 0
    lesen_wert = INI_ReadValueFromFile("Eingetragen", "Wert", "", ini)
    Dim i As Integer
    For i = 0 To lesen_wert Step +1
    lesen_wort = INI_ReadValueFromFile("Bezeichnung", i, "", ini)
    ComboBox1.Items.Add(lesen_wort)
    Next
    End If