Form in Taskbar bauen und diese Im Vordergrund halten

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Form in Taskbar bauen und diese Im Vordergrund halten

    Hallo,

    Ich habe für meine Uhr ein Kontrollpanel gebaut, welches als Unsichtbare Form ( man sieht nur den text und die Buttons ) in die Taskbar gebaut bzw verschoben wird. Sobald ich aber auf ein element der Form klicke verschwindet die Form unter der Taskbar. Ich habe also einen Timer gebaut und immer Topmost = true gemacht doch nun verträgt sich das nicht mit anderen Formen, welche auf topmost = true sind. Sie fangen an zu blinken. Was kann ich tun?
    Kannst Du das Projekt / die relevante Hülse mal 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!
    Die Form für die Taskleiste

    VB.NET-Quellcode

    1. Public Class Form2
    2. Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Me.Location = New Point(My.Computer.Screen.WorkingArea.Width / 2, My.Computer.Screen.WorkingArea.Height + 2)
    4. Me.TopLevel = True
    5. End Sub
    6. End Class


    Ein Teil meiner standart Form

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. nf2.Show()
    3. m_Timer.Start()
    4. End Sub


    Wiie ich diese Form in den Vordergrund baue
    durch einen Timer

    VB.NET-Quellcode

    1. Me.TopMost = True
    2. nf2.TopMost = True

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

    was ist nf2 :?:
    Wo steht Me.TopMost = True :?:
    Was steht noch so im Designer-Code :?:
    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!
    Probier mal in der 2. Form

    VB.NET-Quellcode

    1. Me.BringToFront()
    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!
    Selbe Ereignis die mainform flackert.

    Habe in Form2 also nf2 einen timer nun gebaut 1millisekunde und dort
    Me.BringToFront()

    habe aus form1 aus dem timer nf2.topmost = true entfernt

    Nachstellen kannst dud as indem du ein neues projekt machst und eine form anhängst. beide mit einem timer dann durch
    Me.BringToFront() oder me.TopMost = true im vordergrund hältst
    und wie setzte ich jetzt die Taskleiste als Parent der form2? Die API ist eingebaut nur ich brauche den prozessnamen der taskleiste als string

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

    Du brauchst den Handler der Tastkleiste und auch hierfür gibts im INet viele Infos wie man daran kommt, denn zum Verstecken der Taskleiste oder entfernen des Starbuttons braucht man ja auch den Handler. Aber ich suche jetzt nicht für dich im Netz ;)
    Also nochmal um das Misverständnis zu beseitigen.

    Ich will nur 2 Formen welche in einem Projekt sind gleichzeitig topmost machen so dass beide unabhängig immer im vordergrund sind. Ich will kein Programm in meiner Form starten
    Das geht aber nicht Top Most kann ja nur EINS sein logisch oder? Top Most heißt ja soviel wie am weitesten Vorne und es kann ja nicht noch am weitesten Vorne geben, dann wäre die dahinter ja nicht mehr am weitesten Vorne.

    Du willst eine Form in die Taskbar packen so wie ich das verstanden habe was momentan Laienhaft oder unschön löst indem die Form an die die Stelle Positionierst wo sie haben willst ÜBER der Tastkleiste und eben auf TopMost stellst.

    Ich würde versuchen die Formen IN die Taskbar zu integrieren. Die Taskbar is ja auch nur eine Form die man i.d.R. manipulieren kann.

    Dodo schrieb:

    Das geht aber nicht Top Most kann ja nur EINS sein logisch oder?
    Da gibt es die Klasse von Fenstern mit der Eigenschaft TopMost = True. Alle diese Fenster liegen vor allen Fenstern mit TopMost = False.
    Das vorderste Fenster ist dann dasjenige, dem die Eigenschaft TopMost = True zuletzt gegeben wurde.
    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!