Taskleiste verschwindet automatisch - will ich nicht!

  • VB.NET
  • .NET (FX) 4.5–4.8

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

    Taskleiste verschwindet automatisch - will ich nicht!

    Hey,
    ich habe ein VB.NET Form mit "FormBorderStyle: None" und "WindowsState" auf Maximized".
    Jetzt wird mir allerdings die Taskleiste automatisch ausgeblendet, ich möchte, dass mein Programm zwar automatisch sich (regel ich durch Anchors)
    an's Verhältnis der Bildschirmgröße anpasst aber gleichzeitig den kompletten Raum ausfüllt, einfach die ganz normale Größe eines Programmes ohne Taskleiste.
    Was muss ich machen, dass mir die Taskleiste nicht verschwindet?
    Meinst Du, dass das Fenster bei einem Bildschirm mit 1920x1080 Pixeln auch 1920x1080 Pixel groß ist und somit die Taskleiste verdeckt wird, du aber möchtest, dass das Fenster 1920x1040 groß ist, sodass die Taskleiste vom Fenster nicht verdeckt wird?
    In diesem Fall kann System.Windows.Forms.Screen helfen. Da gibts' PrimaryScreen bzw. AllScreens und jeder Screen hat eine ClientArea-Eigenschaft (oder so ähnlich benannt), die den Bildschirmbereich ohne Taskleiste angibt.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Hi
    die Eigenschaft, die Niko Ortner meint, heißt WorkingArea. Es wird aber nicht reagiert, wenn die Taskbar-Position oder -größe sich ändert. Um das abzufragen, kannst du das Ereignis Microsoft.Win32.SystemEvents.UserPreferenceChanged verwenden. Die Kategorie (e.Category) ist dann Microsoft.Win32.UserPreferenceCategory.Desktop.

    Viele Grüße
    ~blaze~

    Developement schrieb:

    Jetzt wird mir allerdings die Taskleiste automatisch ausgeblendet
    Meinst Du, dass Deine Form den gesamten Bildschirm erfüllt?
    Du kannst auch die Größe des Screen(0) auslesen und Deiner Form die Property .MaximumSize damit befüllen.
    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 möchte generell mein Programm so anzeigen lassen, dass:
    1. Das Fenster egal wie groß der Bildschirm ist, immer so wie ein ganz normales Browserfenster ist. Also Taskbar sichtbar, aber den Rest komplett füllen.
    Wie ein maximiertes Programm.
    2. Ich möchte dass der Bildschirm auf jeder Bildschirmgröße gleich angezeigt wird, reicht da eigentlich, wenn ich einfach WindowsState auf Maximized mache? Dann hab ich aber wieder das Problem mit der Taskbar, die nicht angezeigt wird. Habe BorderStyle auf None.
    3. jedes Element sich automatisch dementsprechend so zentriert wie ich es haben möchte, wie mach ich das?
    Also ich habe im Designer ja nicht die endgültige Größe, da ja jeder Bildschirm variiert und damit will ich dass es immer nach Bildschirmgröße z.B. ins Eck kommt oder so. Wie kann ich das machen? Hab mir schonmal Anchor angeschaut, ich weiß aber nicht, ob sich dass da wirklich gut machen lässt.

    Habe schonmal folgenden Code eingebaut:

    Quellcode

    1. ​Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
    2. Me.MaximumSize = Me.Size
    3. Me.MinimumSize = Me.Size

    Das mit Maximum und Minimum Size habe ich gemacht, weil die Form nicht verkleinert werden soll, verschoben werden kann sie ja aufgrund von FormBorderStyle None nicht.


    Wäre froh um Hilfe!
    @Developement Mach mal die ganzen Einstellungen nicht im Designer, sondern im Code.
    Mach da ein paar Button drauf und experimentiere mit der Reihenfolge der Befehle, da kommt irgendwann die richtige Reihenfolge raus:
    FormBorderStyle
    MaximumSize
    WindowState.
    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!
    Habe jetzt eine andere Situation.
    Habe es versucht anders zu regeln, jetzt habe ich aber folgendes Problem:



    Der Webbrowser geht ein wenig zu weit nach unten aus dem Feld. Der soll direkt über dem Windows Symbol und Taskbar aufhören.
    Hab aktuell diesen Code (FormBorderStyle auf SIZABLE):

    Quellcode

    1. ​Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
    2. Me.MaximumSize = Me.Size
    3. Me.MinimumSize = Me.Size

    Developement schrieb:

    und kriege es immer noch nicht hin.
    30 Sekunden probiert.
    Neue Form und dies (Button1 macht Close()):

    VB.NET-Quellcode

    1. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    2. Me.WindowState = FormWindowState.Maximized
    3. Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
    4. End Sub
    ====
    Gib dem WebBrowser im Designer, nachdem Du die Größe angepast hast, die richtigen Anchor- oder Dock-Properties.
    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!