Frage

Ich verwende Windows Vista und C # .net 3.5, aber ich hatte mein Freund das Programm auf XP laufen und hat das gleiche Problem.

So habe ich einen C # -Programm, das ich mit einem Symbol in der SystemTray im Hintergrund ausgeführt wird. Ich habe einen niedrigen Pegel Tastatur Haken so, wenn ich zwei Tasten drücken (Strg + Fenster in diesem Fall) ist es Hauptform der Anwendung der ziehen werde. 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-Hit bringt es die Form, egal welches Programm ich Fokus gegeben haben. Aber manchmal wird die Taskleiste zeigt nach wie vor über die Form, den ich nicht will. Ich will es immer vollen Umfang nutzen sein, wenn ich die Tastenkombination getroffen.

Ich schätze, es hat etwas mit dem zu tun, was Anwendung ursprünglich Fokus hat. Aber selbst wenn ich auf dem Hauptformular klicken, wird die Taskleiste manchmal bleibt dort. So frage ich mich, wenn der Fokus wirklich das Problem ist. Es scheint nur, wie manchmal die Taskleiste stur sein und will nicht hinter meinem Programm setzen.

Wer irgendwelche Ideen, wie ich dieses Problem beheben?

EDIT: Mehr Details- Ich versuche, den gleichen Effekt, dass ein Web-Browser hat zu erreichen, wenn Sie es in Vollbild-Modus setzen, oder, wenn Sie Powerpoint in dem Präsentationsmodus setzen.

In einem Fenster bilden Sie das tun, indem Sie die Grenze Stil zu keinem setzen und das Fenster zu maximieren. Aber manchmal wird das Fenster nicht decken die Taskleiste aus irgendeinem Grund. Die Hälfte der Zeit wird es.

Wenn ich das Hauptfenster oberste haben, die anderen dahinter fallen, wenn ich darauf klicke, was ich nicht will, wenn die Taskleiste ausgeblendet ist.

War es hilfreich?

Lösung

Versuchen Sie, diese (wo this ist Ihre Form):

this.Bounds = Screen.PrimaryScreen.Bounds;
this.TopMost = true;

Das wird die Form auf Vollbild eingestellt, und es wird die Taskleiste ab.

Andere Tipps

Ich habe so viele Lösungen ausprobiert, einige von ihnen arbeitet unter Windows XP und alle von ihnen funktionierten nicht auf Windows 7. Schließlich habe ich eine einfache Methode schreiben, dies zu tun.

private void GoFullscreen(bool fullscreen)
    {
        if (fullscreen)
        {
            this.WindowState = FormWindowState.Normal;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            this.Bounds = Screen.PrimaryScreen.Bounds;
        }
        else
        {
            this.WindowState = FormWindowState.Maximized;
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
        }
    }

die Reihenfolge des Code ist wichtig und wird nicht funktionieren, wenn Sie den Ort der WindwosState und Formborderstyle ändern.

Einer der Vorteile dieses Verfahrens ist die oberst auf falsches verlassen, die anderen Formen ermöglichen, die Hauptform zu kommen.

Es löste absolut mein Problem.

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F11)
        if (FormBorderStyle == FormBorderStyle.None)
        {
            FormBorderStyle = FormBorderStyle.Sizable;
            WindowState = FormWindowState.Normal;
        }
        else
        {
            SuspendLayout();
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
            ResumeLayout();
        }
}

Soweit ich weiß, die Taskleiste ist entweder über oder unter Windows auf der Grundlage der „Halten Sie die Taskleiste auf den anderen Fenster“ -Einstellung. (Zumindest, das ist der Wortlaut in XP.) Ich nehme an, Sie könnten versuchen, um zu sehen, wenn Sie diese Einstellung erkennen und sie wechseln, wenn nötig?

Versuchen Sie das Formular Ändern der Größe und an der Vorderseite der z-Reihenfolge wie so bringen:

        Rectangle screenRect = Screen.GetBounds(this);
        this.Location = screenRect.Location;
        this.Size = screenRect.Size;
        this.BringToFront();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top