Programm minimieren wenn nicht in Taskbar

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Chucky109.

    Programm minimieren wenn nicht in Taskbar

    Huhu,
    habe gestern dann ein bissl rumexperimentiert und wolle mein Programm so haben, dass es nur in der Trybar angezeigt wird. Das ging dann auch alles. Das Problem ist, dass wenn ich es dann minimiere die Titelleiste praktisch überbleibt und es sich nicht richtig minimiert. Wenn ich die Anzeige in der Taskbar wieder einschalte funktioniert das Minimieren perfekt.

    Was kann man dagegen machen?

    Grüße
    Kannst Du bitte mal den dies betreffenden Code posten?
    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!
    Es gibt keinen Code dazu :o
    Die Form kriegt die Eigenschaft ShowinTaskbar False (Im Formdesigner) und ein NotifyIcon damits in der Traybar anzeigt wird. Wenn ich die Form dann minimieren will, damit man sie wieder über das Trayicon aufrufen kann, funktioniert das nicht da sich praktisch nur der Inhalt minimiert und die Form auf den blauen Rahmen + Titelleiste minimiert wird.

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

    Könntest du vllt Screenshots posten?
    Kann mir das gerade nicht recht vorstellen ;)
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Das NotifyIcon hast Du auch im Designer hinzugefügt :?:
    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!

    MemoAnMichSelbst schrieb:

    Könntest du vllt Screenshots posten?
    Kann mir das gerade nicht recht vorstellen ;)
    Siehe unten

    RodFromGermany schrieb:

    Das NotifyIcon hast Du auch im Designer hinzugefügt :?:
    Ja. Es wird ja in der Traybar angezeigt, das Icon.

    Das was ich mit dem Minimieren meine, passiert nur wenn ich es nicht in der Taskbar anzeigen lass

    (Auf dem Screen ist der minimierte Status zu sehen, wenn ShowInTaskbar auf false ist)
    Bilder
    • screen.png

      49,07 kB, 261×88, 192 mal angesehen
    Wenn du bei "ShowInTaskbar" auf "False" stellst ist es auch bei mir so das, dass Fenster beim Minimieren in die linke untere Ecke des Bildschirm gelegt wird.
    Wenn du es dann natürlich nach oben ziehst siehst du nur die obere Bar (Soweit ich das verstanden habe dein Problem).
    Der Effekt der bei dir Auftritt ist soweit ich weiß eigentlich normal so wie er ist. Möchtest du das Icon nur im Systemtray zeigen (also da bei der Uhr) ?
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Chucky109 schrieb:

    Ja. Es wird ja in der Traybar angezeigt, das Icon.

    RodFromGermany schrieb:

    Kannst Du bitte mal den dies betreffenden Code posten?
    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!
    ist doch logisch: wenn das Programm kein Taskbar-Symbol hätte wäre es ja "weg"... Das ist nur in deinem Fall kein Problem, weil du das NotifyIcon hast - das ist allerdings nicht immer der Fall, weshalb dieses "Pseudo-Minimieren" der Windows-Normalfall ist.

    du könntest im SizeChanged-Event deiner Form prüfen, warum sich die Größe geändert hat, indem du abfragst, ob die WindowState-Eigenschaft Minimized ist:

    VB.NET-Quellcode

    1. Private Sub Form1_SizeChanged(sender As Object, e As System.EventArgs) Handles Me.SizeChanged
    2. If Me.WindowState = FormWindowState.Minimized Then
    3. Me.Hide()
    4. End If
    5. End Sub
    und dann einfach die .Hide()-Methode der Form ausführen, damit der "Fensterrest" verschwindet.
    Ich habs so gemacht dann funktioniert es auch:

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    4. End Sub
    5. Private Sub Form1_SizeChanged(sender As Object, e As System.EventArgs) Handles Me.SizeChanged
    6. If WindowState = FormWindowState.Minimized Then
    7. ShowInTaskbar = False
    8. Me.Visible = False
    9. End If
    10. End Sub
    11. Private Sub NotifyIcon1_Click(sender As Object, e As System.EventArgs) Handles NotifyIcon1.Click
    12. If WindowState = FormWindowState.Minimized Then
    13. WindowState = FormWindowState.Normal
    14. ShowInTaskbar = True
    15. Me.Visible = True
    16. End If
    17. End Sub
    18. End Class


    Klickst du dann das Tray Symbol an, ist die Form wieder da.
    Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang.

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „Snaptu“ ()