Wie erstelle ich ein NotifyIcon mit Untermenüs

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Wie erstelle ich ein NotifyIcon mit Untermenüs

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public MyNotifyIcon As New NotifyIcon
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. 'MyNotifyIcon Konfiguration
    5. MyNotifyIcon.Icon = My.Resources.Graphen
    6. MyNotifyIcon.Visible = True
    7. 'MenüStrip Initianlisierung
    8. Dim MyContextMenuStrip As New ContextMenuStrip()
    9. 'Übergeordnete Menüs
    10. Dim MyToolStripMenuItem01H As New ToolStripMenuItem("1HJ")
    11. Dim MyToolStripMenuItem02H As New ToolStripMenuItem("2HJ")
    12. 'Untegeordnete Menüs
    13. Dim MyToolStripMenuItem As ToolStripMenuItem
    14. For cw As Integer = 0 To 26
    15. MyToolStripMenuItem = New ToolStripMenuItem(cw.ToString)
    16. MyToolStripMenuItem01H.DropDownItems.Add(MyToolStripMenuItem)
    17. AddHandler MyToolStripMenuItem.Click, AddressOf MyToolStripMenuItemClick
    18. Next
    19. For cw As Integer = 27 To 53
    20. MyToolStripMenuItem = New ToolStripMenuItem(cw.ToString)
    21. MyToolStripMenuItem02H.DropDownItems.Add(MyToolStripMenuItem)
    22. AddHandler MyToolStripMenuItem.Click, AddressOf MyToolStripMenuItemClick
    23. Next
    24. 'Übergeordnete Menüs dem Strip hinzufügen
    25. MyContextMenuStrip.Items.Add(MyToolStripMenuItem01H)
    26. MyContextMenuStrip.Items.Add(MyToolStripMenuItem02H)
    27. 'Übergeordnete Menüs dem Strip hinzufügen dem NotifyIcon hinzufügen
    28. MyNotifyIcon.ContextMenuStrip = MyContextMenuStrip
    29. End Sub
    30. Private Sub MyToolStripMenuItemClick(sender As ToolStripMenuItem, e As EventArgs)
    31. MsgBox(sender.Text)
    32. End Sub
    33. End Class


    Bitte mal eure Erfahrungen dazu schreiben. Danke :thumbsup:

    Ich muss dazu erwähnen das ich ein Icon (ico) dem ResourceManager mit dem Namen Graphen hinzugefügt habe. Das ist wichtig da sonst nix im Menü angezeigt wird. Graphen war ein Testicon.

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

    Einfach alles mit dem Formsdesigner machen...
    1) ein NotifyIcon und ein ContextMenustrip in das Komponentenfach der Form ziehen
    2) das ContextMenustrip im Designer mit Untermenüs komfortabel kreieren...
    3) und dann dem NotifyIcon das fertige Contextmenustrip zuweisen...

    Entrails schrieb:

    Außerdem wollte ich langfristig ein globales notifyicon machen
    Halte zunächst mal den Ball flach.
    Fang an und verstehe, was @VB1963 Dir geschrieben hat, dasselbe hättest Du von mir gehört.
    Mach es im Designer. Mache es richtig, und wenn Du noch mehr brauchst, was der Designer Dir nicht buieten kann (kann ich mir im Moment nicht vorstellen), dann wende Dich mit präzisen Fragen und Problemen an das Forum.
    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!
    Ich denke nicht das ich provokant war. Ich bin ein mittelmäßiger Programmierer und war auf der suche nach diversen Informationen über das NotifyIcon. Nachdem ich dann selber alles zusammen gesucht hatte und meine Erfahrung hier kund tue, und eine gepflegte Konversation führen wollte, werde ich hier wie ein "pansen" behandelt. Danke. Vielleicht wollen zukünftige Programmierer auch mal was lernen und verstehen. Nicht immer ist der "MacroEditor" der richtige weg! Und nicht jeder muss diesen weg der Verständnis gehen. Wenn es direkt und auch "nicht schlecht" erklärt wird. Ich wollte ausschließlich einfache, klare Strukturen darlegen (mit der Hilfe erfahrener Menschen). Diese Code-Zeilen hätten mir in meiner Situation mehr als geholfen... Bitte mal etwas konstruktives Posten. Bin euch nicht böse, nur fühle mich etwas missverstanden was meinen Post angeht. Danke
    @Entrails: An welcher Stelle wurde Dir denn vorgeworfen, provokant zu sein? Wenn es um

    RodFromGermany schrieb:

    Halte zunächst mal den Ball flach.
    geht, dann wird das daran liegen, dass da bei Dir was anderes angekommen ist, als RfG meinte. Der Satz bedeutete soviel wie: Bevor Du versuchst, was so großes wie ein globales NotifyIcon zu kreieren (was immer das in Deinen Augen bedeutet), probier es doch erstmal mit einfachen Mitteln eine Nummer kleiner und experimentier mit dem NotifyIcon aus der Werkzeugbox. Das heißt: Pack ein NotifyIcon aus der Werkzeugbox auf Dein(e) Form, stell Properties ein (z.B. Visible, Image, etc.) und schau Dir an, was danach in der Form.Designer.vb drinsteht, da diese nun die Generiercode enthält, mit dem Du weiterarbeiten könntest, wenn Du was größeres vorhast.
    An welchen konkreten Stellen Du Deiner Meinung nach noch angegriffen wurdest, kann ich sonst leider nicht nachvollziehen/herleiten/ausmachen.
    btw: Makrorekorder-Code und Designercode sind ein wenig was anderes.

    Und wenn jemand sich jetzt nicht den Designercode anschauen will (warum auch immer das ein Problem sein sollte), hier nochmal ein Beispiel:

    VB.NET-Quellcode

    1. Dim NotifyIcon1 As System.Windows.Forms.NotifyIcon
    2. NotifyIcon1.Icon = New Icon(DeinDateipfad)
    3. NotifyIcon1.Text = "Titel"
    4. NitifyIcon1.Visible = True

    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“ ()

    Dann muss ich mich erstmal entschuldigen, ich war gestern etwas zu über eifrig und hatte es von vorne herein schon falsch verstanden. Es hatte sich für mich angehört wie: warum schreibst du hier deine Erkenntnisse, schau dir doch einfach den designer code an.

    Das man das machen kann weiß denke ich jeder. Da braucht man doch keinen Hinweis dafür. Deshalb hatte ich es missverstanden.

    Und zum MacroEditor: Ich habe diesen in meiner Antwort gewählt, da er zB in Excel mehr aufzeichnet und auch mehr Eigenschaften festlegt als man meistens benötigt. Und das macht den Code unübersichtlich und/oder auch unsauber.
    guten tag zusammen.
    ich bin auf der suche nach möglichkeiten für das Notyfi-Icon auf diesen Treat gestoßen.
    meine meinug dazu ist folgende:
    • wenn ich nicht genau weiß was ich mache ist der weg (N-Icon/Contextmenü) der bessere weg (wie bei mir), da dann hausgemachte fehler vermieden werden. zumal die sehr schwer bis garnicht gefunden werden können (meine erfahrung).
    • zum verstehen was eigentlich los ist und was geschieht, kann man sich im designer im debug-modus anschauen (falls möglich, noch nie ausprobiert)
    • für mich ist es besser so viel wiemöglich über den entwurf zu machen und die eigenschaften die angeboten werden dort einzustellen (geht schneller, womit der zweck dieser sachen erfüllt ist). das reduziert die fehler quote ungemein. wenn im programmablauf änderungen erforderlich sein sollten mache ich diese im code.
    • IDE und macroEditor sind zwei ganz verschiedene paar schuhe. man kann halt nicht äpfel mit birnen vergleichen. gehören beide zum obst (Programmentwurf) sind aber zwei ganz unterschliedliche früchte (wege/ansätze zum fertigen programm).
    als ich in den 80ger jahren des letzten milleniums mit dem programmieren angefangen habe bin ich ganz schnell mit dem macroeditor von excel und access an die grenzen des machbaren gestoßen und dadurch zu vb (leichterer einstieg ins programmieren) gekommen.
    Das dürfte den Threadersteller nicht mehr sonderlich interessieren, da er vor ca. 2 Jahren das letzte Mal online war. Bitte alte Threads nur ausgraben, wenn noch Relevanz für den Threadersteller bestehen könnte oder eine konkrete Lösung anzubieten ist. Von daher: Topic closed
    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.