Programm beim Minimieren im Tray statt in der Taskleiste

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von milaim.

    Programm beim Minimieren im Tray statt in der Taskleiste

    Hi Comm,

    ich schon wieder. Ich glaube ich programmiere zu viel....

    BTT:
    Wie ist es möglich, sein Programm beim Minimieren aus der Taskleiste zu entfernen und im Tray weiterlaufen zu lassen, so dass man bei einem Klick auf den TrayIcon das Programm wieder herholt?
    naja, dazu gibts keine eigenschaft, du sagst einfach, wenn minimiert wird(du musst den status im sizechanged vorher mit if abfragen) und wenn form minimiert, einfach:
    1:
    notifiyicon.visible auf true setzen, somit wird es angezeigt, mit den inhalten, die du in den eigenschaft des NI eingestellt hast

    oder

    2:
    notifyicon.showballoontipp(anzeigedauer, titel, text, ka was da noch wa :P)


    somit wird es dann eingeblendet. mit visible false versteckst du es dann einfach wieder

    PS: es erscheint nur ein icon, wenn du vorher auch ein icon in den eigenschaften des NI zugewiesen hast, ist dort keins, wirst du das icon im tray nicht sehen
    Hallo, ich habe dazu auch mal eine kleine Frage.

    Das ins Trayicon minimieren und wieder öffnen ist ja kein Problem.
    Wie kann ich aber nach dem minimieren ins Tray die Form wieder so laden wie sie vor dem minimieren war? Also Maximiert bzw Normal.
    Zum anzeigen der Form müsste ich beim ContextMenu des NotifyIcons die WindowState auf Normal oder Maximiert setzen.
    Woher weis ich aber ob Maxi oder Normal?
    Hab da an eine Variable gedacht. Jedoch weis ich nicht in welchem Event ich die Variable ändern muss. Im SizeChanged funktioniert es nicht, das wenn ich auf Minimieren klicke, die WindowState auf minimieren ist.
    ResizeBegin wird nur aufgerufen wenn ich die Formgröße per Maus ändere...

    MfG T1g0r
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    in den Doubleklick-Event des Notifiicons schreiben=

    VB.NET-Quellcode

    1. If WindowState = FormWindowState.Minimized Then
    2.   WindowState = FormWindowState.Normal
    3.   ShowInTaskbar = True
    4.   NotifyIcon1.Visible = False
    5.   End If

    Ich hoffe das hilft. :thumbup:
    Das ist klar.
    Aber ich muss doch vor dem Minimieren auch wissen ob die Form Maximiert war oder nicht.
    Wenn ich

    VB.NET-Quellcode

    1. WindowState = FormWindowState.Normal

    aufrufe, wird die Form aber nicht Maximiert aufgerufen, obwohl sie es vor dem Minimieren war....
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Bei Minimieren.(Vieleicht auch in den Resize-Begin).

    VB.NET-Quellcode

    1. Dim hsize as Integer = Me.Height
    2. Dim wsize as Integer = Me.widht


    Beim aus dem Tray öffnen.

    VB.NET-Quellcode

    1. WindowState = FormWindowState.Normal
    2. ShowInTaskbar = True
    3. NotifyIcon1.Visible = False
    4. Me.Size = New System.Drawing.Size(hsize ; wsize)

    CODE UNGETESTET

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

    Und was ist wenn es maximiert war?
    Dann ist zwar die Form so groß, als wäre diese maximiert, aber sie ist es nicht...
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Dann wird die Form minimiert und Unsichtbar. Wird die Form dann wieder Sichtbar, ist sie ja immer noch minimiert.
    Ist wieder das Problem, mit dem maximiert oder normal...
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Hi T1g0r,
    Einfachste Lösung mit ner globalen Variable:

    VB.NET-Quellcode

    1. Dim currentState As FormWindowState


    Beim schließen, gibst du einfach currentState den Me.WindowState und beim öffnen, andersrum ;)
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Ja soweit klar, so hatte ich es auch vor.
    Aber bei welchem Event muss ich die Variable schreiben?
    Das muss ja vor dem SizeChanged sein...
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Eben nicht...
    Wenn das SizeChanged-Event aufgerufen wird, ist der WindowState bereits auf minimiert...
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Sorry, mein fehler.. hätte deine Beiträge komplett durchlesen sollen.

    So in etwa würds klappen:

    VB.NET-Quellcode

    1. Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
    2. If Me.WindowState = FormWindowState.Minimized Then
    3. Me.ShowInTaskbar = False
    4. Me.NotifyIcon1.Visible = True
    5. Else
    6. Me.ShowInTaskbar = True
    7. Me.NotifyIcon1.Visible = False
    8. End If
    9. End Sub
    10. Private Sub NotifyIcon1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
    11. Me.WindowState = currentState
    12. End Sub
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Und wo wird currentstate festgelegt?
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia
    Else - Zweig. Es soll nur speichern,wenns nicht minimized ist.

    //EDIT: Also hier:

    VB.NET-Quellcode

    1. Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged
    2. If Me.WindowState = FormWindowState.Minimized Then
    3. Me.ShowInTaskbar = False
    4. Me.NotifyIcon1.Visible = True
    5. Else
    6. currentState = Me.WindowState 'Hier..
    7. Me.ShowInTaskbar = True
    8. Me.NotifyIcon1.Visible = False
    9. End If
    10. End Sub
    11. Private Sub NotifyIcon1_DoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NotifyIcon1.DoubleClick
    12. Me.WindowState = currentState
    13. End Sub
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

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

    Jo, habs hinbekommen... War ein Denkfehler von mir.
    Danke
    wintoolz.de
    • wintoolz.KeyLocker - Programm zum sicheren Verwalten von Passwörten
    • wintoolz.CodeGallery - Datenbank für Codebeispiele veschiedener Programmiersprachen
    • wintoolz.Haushaltsbuch - Dient zum Auflisten der Aktivitäten ihrer Bankkonten

    Benutze auch du Ecosia