In Tray bzw Taskleiste minimieren.

  • VB.NET

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von Lupus.

    In Tray bzw Taskleiste minimieren.

    Hallo liebe Leute,

    also ich suche zum einen den Befehl um mein Programm in die Taskleiste zu minimieren und zum anderen um es in den Tray zu minimieren, sodass es nichtmehr in der Taskleiste zu sehen ist.

    Vielen dank schonmal für eure Hilfe.
    Minimieren in die Taskleiste geht mit:

    VB.NET-Quellcode

    1. Me.WindowState = FormWindowState.Minimized


    Für in den Tray brauchst du ein NotifyIcon (zuerst Visible = False einstellen)
    Und dann:

    VB.NET-Quellcode

    1. Me.Visible = False
    2. NotifyIcon.Visible = True
    Ja ist möglich, du brauchst einfach ein Panel oder eine Picturebox...

    Also zuerst:

    VB.NET-Quellcode

    1. Public bild_posi As Windows.Forms.Control


    Und dann der eigentliche Befehl, hier mit Label1 gemacht:

    VB.NET-Quellcode

    1. Private Sub Label1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown
    2. If e.Button = Windows.Forms.MouseButtons.Left Then
    3. bild_posi = New Windows.Forms.Control
    4. bild_posi.Location = e.Location
    5. End If
    6. End Sub
    7. Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
    8. If e.Button = Windows.Forms.MouseButtons.Left Then
    9. Dim position As Windows.Forms.Control
    10. position = New Windows.Forms.Control
    11. position.Location = (e.Location + Me.Location) - bild_posi.Location
    12. Me.Location = position.Location
    13. End If
    14. End Sub


    Und dann FormBorderStyle auf None stellen, damit das Fenster keinen Rahmen mehr hat
    Dazu brauchst du kein Panel oder PictureBox. Das geht auch normal auf der Form.

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Pos As Point
    3. Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Form1.MouseDown
    4. If e.Button = Windows.Forms.MouseButtons.Left Then
    5. Pos = New Point(e.Location)
    6. End If
    7. End Sub
    8. Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Form11.MouseMove
    9. If e.Button = Windows.Forms.MouseButtons.Left Then
    10. Me.Location = New Point(Me.Location + (e.Location - Pos))
    11. End If
    12. End Sub
    13. End Class
    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
    Also ich habs poste jetz den code mit dem Panel, weil beim Anderen bekomm ich nen error.


    VB.NET-Quellcode

    1. Private Sub Panel1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseDown
    2. If e.Button = Windows.Forms.MouseButtons.Left Then
    3. bild_posi = New Windows.Forms.Control
    4. bild_posi.Location = e.Location
    5. End If
    6. End Sub
    7. Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
    8. If e.Button = Windows.Forms.MouseButtons.Left Then
    9. Dim position As Windows.Forms.Control
    10. position = New Windows.Forms.Control
    11. position.Location = (e.Location + Me.Location) - bild_posi.Location
    12. Me.Location = position.Location
    13. End If
    14. End Sub
    15. End Class
    Jetzt hab ich sconwieder ein Problem :)

    VB.NET-Quellcode

    1. Private Sub cmdTray_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTray.Click
    2. Me.Visible = False
    3. NotifyIcon1.Visible = True
    4. End Sub



    Wenn ich das benutz, dann wird das Programm schätze ich mal im Tray abgelegt, ich sehe es nur nichtmehr und kann es somit auch nicht wiederherstellen.

    Weiß da jemand ne Lösung ?

    Vielen Dank im Vorraus.
    Klicke doppelt auf das NotifyIcon dann wählst du _Click() oder so aus und dann schreibst du dort:

    Me.Visible = True

    Edit:
    Willst du dass das Icon immer sichtbar ist, und man das Fenster über das Icon ein und ausblendet?

    Dann kannst du das mit If... machen, also beim Klicken auf das Icon:

    If Me.Visible = True Then
    Me.Visible = False
    Else
    Me.Visible = True
    End If
    Hast du dem NotifyIcon ein Icon zugewiesen?
    Der Code von Sandiro funktioniert zwar, aber normal macht man das so:

    VB.NET-Quellcode

    1. Private Sub NotifyIcon1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles NotifyIcon1.Click
    2. Me.WindowState = FormWindowState.Normal
    3. End Sub
    4. Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    5. If Me.WindowState = FormWindowState.Minimized Then
    6. 'Form unsichtbar machen
    7. Me.ShowInTaskbar = False
    8. Me.WindowState = FormWindowState.Minimized
    9. NotifyIcon1.Visible = True
    10. Else
    11. 'Form sichtbar machen
    12. Me.ShowInTaskbar = True
    13. Me.WindowState = FormWindowState.Normal
    14. NotifyIcon1.Visible = False
    15. End If
    16. End Sub

    Wenn du die Form nun Minimierst kommt sie ins TrayIcon. Beim Klick auf das TrayIcon wird sie wieder sichtbar.
    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
    Hast du beim Klick auf das TrayIcon auch den Code drin?

    VB.NET-Quellcode

    1. Me.WindowState = FormWindowState.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
    Ja eigtl schon kannst ja nochma schaun


    VB.NET-Quellcode

    1. Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
    2. Me.WindowState = FormWindowState.Normal
    3. End Sub
    4. Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    5. If Me.WindowState = FormWindowState.Minimized Then
    6. 'Form unsichtbar machen
    7. Me.ShowInTaskbar = False
    8. Me.WindowState = FormWindowState.Minimized
    9. NotifyIcon1.Visible = True
    10. Else
    11. 'Form sichtbar machen
    12. Me.ShowInTaskbar = True
    13. Me.WindowState = FormWindowState.Normal
    14. NotifyIcon1.Visible = False
    15. End If
    16. End Sub




    Edit:
    Wenn ich jetzt in die Taskleiste minimieren möchte, geht es in den Tray und nicht in die Taskleiste. Ich kann es auch durch klicken auf das Icon im Tray wiederherstellen.

    D.h.
    Das was ich mit dem TrayButton wollte, passiert nun mit dem Minimieren Button xD

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

    Du hast den Code im MouseDoubleClick-Event. Also musst du auch Doppelklicken um die Form wieder sichtbar zu machen.
    Bei mir klappts mit dem Code.
    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
    Ich klicke doppelt und 100-fach aber es passiet nichts.

    Les mal mein Edit oben:

    ich Poste jetzt einmal meine Codes für Minimieren und Tray:

    Ich habe 2 Forms

    Form1:

    VB.NET-Quellcode

    1. Private Sub cmdMinimize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinimize.Click
    2. Me.WindowState = FormWindowState.Minimized
    3. End Sub
    4. Private Sub cmdTray_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTray.Click
    5. Me.Visible = False
    6. NotifyIcon1.Visible = True
    7. End Sub
    8. Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
    9. Me.WindowState = FormWindowState.Normal
    10. End Sub
    11. Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    12. If Me.WindowState = FormWindowState.Minimized Then
    13. 'Form unsichtbar machen
    14. Me.ShowInTaskbar = False
    15. Me.WindowState = FormWindowState.Minimized
    16. NotifyIcon1.Visible = True
    17. Else
    18. 'Form sichtbar machen
    19. Me.ShowInTaskbar = True
    20. Me.WindowState = FormWindowState.Normal
    21. NotifyIcon1.Visible = False
    22. End If
    23. End Sub
    24. End Class



    Form2:

    VB.NET-Quellcode

    1. Private Sub cmdMinimize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdMinimize.Click
    2. Me.WindowState = FormWindowState.Minimized
    3. End Sub
    4. Private Sub cmdTray_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTray.Click
    5. Me.Visible = False
    6. NotifyIcon1.Visible = True
    7. End Sub
    8. Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
    9. Me.WindowState = FormWindowState.Normal
    10. End Sub
    11. Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
    12. If Me.WindowState = FormWindowState.Minimized Then
    13. 'Form unsichtbar machen
    14. Me.ShowInTaskbar = False
    15. Me.WindowState = FormWindowState.Minimized
    16. NotifyIcon1.Visible = True
    17. Else
    18. 'Form sichtbar machen
    19. Me.ShowInTaskbar = True
    20. Me.WindowState = FormWindowState.Normal
    21. NotifyIcon1.Visible = False
    22. End If
    23. End Sub
    24. End Class
    Also nochmal von Vorne.
    Du willst einen Button um das Programm ins Systemtray zu minimieren und einen Button um das Programm nur in die Taskleiste zu minimieren?
    Wenn ja dann so:

    VB.NET-Quellcode

    1. Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
    2. 'Form sichtbar machen
    3. Me.ShowInTaskbar = True
    4. Me.WindowState = FormWindowState.Normal
    5. NotifyIcon1.Visible = False
    6. End Sub
    7. Private Sub btn_InTrayIcon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_InTrayIcon.Click
    8. 'Form unsichtbar machen
    9. Me.ShowInTaskbar = False
    10. Me.WindowState = FormWindowState.Minimized
    11. NotifyIcon1.Visible = True
    12. End Sub
    13. Private Sub btn_InTaskleiste_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_InTaskleiste.Click
    14. Me.WindowState = FormWindowState.Minimized
    15. End Sub
    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