Grafiken in Submenüs statt Submenüs

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von dive26.

    Grafiken in Submenüs statt Submenüs

    Hallo Leute,

    ich brauche eine Idee von Euch wie ich ein Submenü so umgestalten kann, dass nicht das gewohnte Menü aufpoppt, sondern ein eigenes mit Grafischen Menüs.
    Dazu habe ich Euch das Menü wie es jetzt ist und so wie ich es in etwas mir vorstelle als Grafik angehängt (nur schnell mit Photoshop zusammengezeichnet - soll dann natürlich schön werden ;) ).

    Wie würdet Ihr an die Sache rangehen?

    Vielleicht irgend ein Event (Paint-Event), welches beim Submenü überschrieben wird?

    Danke für Eure Inputs.

    LG Roland
    Bilder
    • ausgangspunkt.jpg

      1,07 MB, 3.007×1.231, 85 mal angesehen
    • ergebnis_soll_ungefaehr_so_aussehen.jpg

      259,27 kB, 1.061×520, 78 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Menü oder Kontextmenü? Weil beim Kontextmenü bin ich bei mir an einem Punkt angekommen, wo ich mir das vermutlich selbst als eine Klasse mit möglichen Vererbungen für differenzierte Darstellung (unterschiedliche Szenarien in Programmen) konstruieren muss, da mir an dem Standard-KontextMenü so einiges nicht gefällt - sowohl grafisch als auch verhaltenstechnisch (kleine Bugs bzw. Ungereimtheiten oder nicht konsequentes grafisches Verhalten). Beim Standardkontextmenü kann man das eine oder andere aufhübschen und verändern, kommt für mich persönlich aber wahrscheinlich nicht mehr in Frage.
    Das gleichzeitige Erscheinen von Dummheit und Unmündigkeit nach Immanuel Kant ist eines der schlimmsten Dinge, die einem Homo sapiens in geistiger Hinsicht widerfahren können, hat manchmal aber auch durchaus seine Vorteile.
    @dive26 Ich hab so was ähnliches, das ist eine Eigenkonstruktion ohne Zugriff auf die Menü-Klassen von Windows.
    Button mit Text und Bild in einer vorgebbaren Menü-Submenü(-Submenü)-Struktur. Das ist gar nicht so wild, allerdings gibt es bei uns kein Zurück aus einem Submenü.
    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!
    Wenn es auch untereinanders sein darf und der Text nicht schnell änderbar sein muss, verwende einfach 3 Bilder, dann geht es mit Hausmitteln.
    btw: Die Bilder können auch sehr groß sein.
    Bilder
    • Result.png

      14,43 kB, 120×314, 66 mal angesehen
    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.

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

    Es handelt sich um ein ContextMenü.
    Das ContextMenü selber soll so bleiben wie es ist, nur der eine Untermenüpunkt "Berichte" sollte nicht in den drei Zeilen aufpoppen, sondern so wie ich es gezeichnet habe.

    Bin nun schon einen kleinen Schritt weiter.
    Im Paint-Ereignis zeichne ich das was ich dargestellt haben möchte:


    Im Mouseclick-Ereignis Ereignis muss ich nun abfragen an welcher X-Koordinate im Submenü geklickt wurde. Bzw. Hover um etwas hervorzuheben.



    Ich habs wieder aufgegeben und bleibe bei den normalen Menüs.
    Konnte zwar im Paint-Event teile zeichnen, aber es verhält sich alles nicht wie es soll ;-).

    Beiträge zusammengefügt. ~Thunderbolt
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Thunderbolt“ ()

    Ich hab was:
    Füg Dir vorübergehend ein ToolStrip auf das Form hinzu und fülle es mit 3 ToolStripButtons mit je einem Bild, TextImageRelation=ImageAboveText und DisplayStyle=ImageAndText. Dann erstell im Code ein ToolStripDropDown und gib ihm die Buttons und setz dann Deine ToolStripDropDown-Instanz als DropDown-Wert des gewünschten ContextMenu-Eintrags. Das ToolStrip auf dem Designer ist eigentlich nur dafür da, damit Du über Deine FormX.Designer.vb schneller an den DesignCode der Buttons kommst.

    VB.NET-Quellcode

    1. Private ReadOnly MyMenu As New ToolStripDropDown With {.LayoutStyle = ToolStripLayoutStyle.HorizontalStackWithOverflow}
    2. Private Sub BtnFillToolStripDropDownAndAddItToContextMenuItem_Click(sender As Object, e As EventArgs) Handles BtnFillToolStripDropDownAndAddItToContextMenuItem.Click
    3. MyMenu.Items.Add(ToolStripButton1)
    4. MyMenu.Items.Add(ToolStripButton2)
    5. BarToolStripMenuItem.DropDown = MyMenu
    6. End Sub

    Bilder
    • Result.png

      22,01 kB, 267×134, 112 mal angesehen
    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.
    @VaporiZed
    Du bist wie immer der Beste !!! Vielen vielen Dank dafür!
    Funktioniert mit Deiner Anleitung einwandfrei.
    Bilder
    • 15022023142834.jpg

      357,33 kB, 1.698×550, 52 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at