Ich benutze Windows Vista und C# .net 3.5, aber ich hatte meinen Freund das Programm auf XP laufen und hat das gleiche Problem.C# - Warum wird eine Vollbild-Winform-App IMMER die Taskleiste nicht abdecken?
Also habe ich ein C# -Programm, das ich im Hintergrund mit einem Symbol im SystemTray ausgeführt habe. Ich habe einen Low-Level-Keyboard-Hook, wenn ich zwei Tasten (Ctr + Windows in diesem Fall) drücke, wird es das Hauptformular der Anwendung ziehen. Das Formular wird Vollbild in den Combo-Taste drückt auch Handler sein:
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
So funktioniert es im Grunde. Wenn ich CTR + Windows drücke, wird das Formular angezeigt, egal auf welches Programm ich mich konzentriert habe. Aber manchmal wird die Taskleiste immer noch über das Formular angezeigt, was ich nicht möchte. Ich möchte, dass immer Vollbild angezeigt wird, wenn ich diese Tastenkombination drücke.
Ich denke, es hat etwas damit zu tun, welche Anwendung ursprünglich Fokus hatte. Aber selbst wenn ich auf mein Hauptformular klicke, bleibt die Taskleiste manchmal dort. Ich frage mich, ob der Fokus wirklich das Problem ist. Es scheint nur so, als ob die Taskleiste manchmal stur ist und nicht hinter meinem Programm sitzen will.
Wer hat irgendwelche Ideen, wie ich das beheben kann?
EDIT: Weitere Details- Ich versuche, den gleichen Effekt zu erzielen, den ein Webbrowser hat, wenn Sie es in den Vollbildmodus versetzen, oder wenn Sie PowerPoint in den Präsentationsmodus versetzen.
In einem Windows-Formular tun Sie das, indem Sie den Rahmenstil auf keinen setzen und das Fenster maximieren. Aber manchmal wird das Fenster die Taskleiste aus irgendeinem Grund nicht abdecken. Die Hälfte der Zeit wird es tun.
Wenn ich das Hauptfenster oben habe, fallen die anderen dahinter, wenn ich darauf klicke, was ich nicht möchte, wenn die Taskleiste ausgeblendet ist.
Damit dies funktioniert, möchten Sie sicherstellen, dass das Formular * nicht * maximiert ist. –
Oh, das einzige Problem ist, dass ich es nicht TopMost haben kann, weil ich andere Fenster habe, die darüber sind, die TopMost sind, und wenn ich auf 'this' klicke, dann werden alle anderen Fenster dahinter gehen. – Joel
Heh. Kleinere Details dort. Ich habe meine Zweifel darüber, ob was du willst * ohne * TopMost gemacht werden kann, wenn der Benutzer "Die Taskleiste über anderen Fenstern halten" aktiviert hat. Sie können jedoch auch mehrere TopMost-Fenster haben, und das aktive Fenster ist das äh, TopMostest. –