MenuStrip Item Bild zur Laufzeit ändern

  • VB.NET
  • .NET (FX) 3.0–3.5

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von DerSmurf.

    MenuStrip Item Bild zur Laufzeit ändern

    Huhu
    Ich habe ein MenüStrip mit verschiedenen Items, die zur Zeit noch Text enthalten.
    Diesen Text möchte ich jetzt aus optischen Gründen in Bilder ändern.
    Besteht die Möglichkeit das Bild eines Items zur Laufzeit zu ändern, ohne es im Programm mitliefern zu müssen? Also ohne direkten Verweis auf die Bilddatei?

    Mein Code zum ändern des Textes sieht bisher folgendermaßen aus. Da es sich um das 1.Item - also das "Main Item" (oberste Ebene) handelt, wird mir leider kein Haken beim Zustand Ckecked = True angezeigt.
    Daher möchte ich den Zustand eindeutig mit Bildern kennzeichnen (Play und Stop Symbole)

    AutoIncrement ist dabei Klassenweit gültig (hier greifen noch andere Subs drauf)

    VB.NET-Quellcode

    1. Private Sub TSAutoIncrement_Click(sender As Object, e As EventArgs) Handles TSAutoIncrement.Click
    2. If TSAutoIncrement.Checked = True Then
    3. AutoIncrement = False
    4. TSAutoIncrement.Text = "hochzählen aus"
    5. Else
    6. AutoIncrement = True
    7. TSAutoIncrement.Text = "hochzählen ein"
    8. End If
    9. TSAutoIncrement.Checked = AutoIncrement
    10. End Sub
    MenuStrip und -Item vorbereiten, dann Bild zuweisen:

    VB.NET-Quellcode

    1. Private Sub PrepareMenuStrip()
    2. MenuStrip1.AutoSize = False
    3. MenuStrip1.Height = 100
    4. ClickMeToolStripMenuItem.AutoSize = False
    5. ClickMeToolStripMenuItem.Width = 100
    6. ClickMeToolStripMenuItem.Image = Drawing.Image.FromFile(PathToFile1)
    7. ClickMeToolStripMenuItem.ImageScaling = ToolStripItemImageScaling.None
    8. ClickMeToolStripMenuItem.DisplayStyle = ToolStripItemDisplayStyle.Image
    9. End Sub
    10. Private Sub ClickMeToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ClickMeToolStripMenuItem.Click
    11. ClickMeToolStripMenuItem.Image = Drawing.Image.FromFile(PathToFile2)
    12. End Sub
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hoi.
    Danke :o)
    Aber ​ClickMeToolStripMenuItem.Image = Drawing.Image.FromFile(PathToFile1) schließt ja das hier aus:

    DerSmurf schrieb:

    Besteht die Möglichkeit das Bild eines Items zur Laufzeit zu ändern, ohne es im Programm mitliefern zu müssen?

    Also brauche ich den Pfad des Bildes, und muss in meinem Programm nen Ordner "Images" oder irgendwas erstellen, wo ich die speicher?
    Du musst die Bilder doch mitliefern, oder soll der Anwender etwa irgentwelche nutzen !?
    Dafür gibbet was von .Net, nämlich Resources.

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

    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Das könnte dann so aussehen, wenn du die Bilder in der Anwendung mitlieferst:
    ClickMeToolStripMenuItem.Image = My.Resources.DasBild

    Die Bilder/Symbole die du mitliefern möchtest, kannst du in den Einstellungen des Projekts unter Ressourcen festlegen.

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

    Japp, dass ich das anzuzeigende Bild mitliefern muss ist mir klar. War ziemlich doof formuliert.
    Mir ging es darum, dass ich nicht die physische Datei mitliefern muss. Also einen Ordner pictures mit entsprechendem Inhalt z.B.
    Das mit den Ressourcen ist perfekt.

    Ich danke euch!