Ich brauche eine Möglichkeit, das aktuelle Fenster zu zentrieren. Wenn ein Benutzer beispielsweise eine Taste drückt, soll sich das Fenster auf dem Bildschirm zentrieren. Ich weiß, dass Sie die Eigenschaft startposition verwenden können, aber ich kann keine andere Möglichkeit finden, diese zu verwenden, als beim ersten Start der Anwendung. Wie zentriere ich das Formular auf dem Bildschirm?
128
Antworten:
Verwenden Sie die Form.CenterToScreen () -Methode.
quelle
Mit Hilfe der Objektfenster
Wählen Sie das Formular aus → Gehen Sie zum Eigenschaftenfenster → Wählen Sie "Startposition" → Wählen Sie den gewünschten Ort aus.
Programmatisch
Form form1 = new Form(); form1.StartPosition = FormStartPosition.CenterScreen; form1.ShowDialog();
Hinweis: Rufen Sie Form.CenterToScreen () nicht direkt aus Ihrem Code auf. Lesen Sie hier .
quelle
Eine einzelne Zeile:
quelle
Screen screen = Screen.FromControl(this);
hier verwenden.Screen.FromControl(this)
sondern behaltePrimaryScreen
. (Ich entwickle eine Anwendung unter Hardware-Einschränkungen) :-)In Windows Forms:
In WPF:
Das ist alles was du tun musst ...
quelle
Wenn Sie Ihre Fenster zur Laufzeit zentrieren möchten, verwenden Sie den folgenden Code, und kopieren Sie ihn in Ihre Anwendung:
Und schließlich rufen Sie die obige Methode auf, um sie zum Laufen zu bringen:
quelle
this.Location = Screen.AllScreens[0].WorkingArea.Location;
zuvor ausgeführt haben. Andere Antworten funktionieren in einem solchen Fall beim Verschieben der App bei Verwendung mehrerer Bildschirme nicht.Zentrieren eines Formulars zur Laufzeit 1.
Legen Sie die folgende Eigenschaft von Form fest:
-> StartPosition: CenterScreen
-> WindowState: Normal
Dadurch wird das Formular zur Laufzeit zentriert. Wenn das Formular jedoch größer als erwartet ist, führen Sie den zweiten Schritt aus.
2. Fügen Sie nach InitializeComponent () eine benutzerdefinierte Größe hinzu.
quelle
Zentriert jedes Fenster, das Sie in den Griff bekommen können
quelle
Benutze das:
quelle
Verwenden Sie die Location-Eigenschaft des Formulars. Stellen Sie den gewünschten oberen linken Punkt ein
gewünschtes x = (desktop_width - form_witdh) / 2
gewünschtes y = (desktop_height - from_height) / 2
quelle
Mit können Sie
Screen.PrimaryScreen.Bounds
die Größe des primären MonitorsScreen
abrufen (oder das Objekt untersuchen, um alle Monitore abzurufen). Verwenden Sie diese mit,MyForms.Bounds
um herauszufinden, wo Sie Ihr Formular platzieren sollen.quelle
Könnte für die Frage nicht vollständig relevant sein. Aber vielleicht kann jemand helfen.
Center Screen funktioniert nicht für mich. Grund war, dass ich dem Formular dynamisch Steuerelemente hinzufügte. Wenn es zentriert war, war es technisch korrekt, basierend auf dem Formular vor dem Hinzufügen der Steuerelemente.
Also hier war meine Lösung. (Sollte mit beiden Szenarien funktionieren)
Sie werden also feststellen, dass ich "PreferredSize" anstelle von "Höhe / Breite" verwende. Die bevorzugte Größe enthält den Wert des Formulars nach dem Hinzufügen der Steuerelemente. Wo Höhe / Breite nicht.
Hoffe das hilft jemandem.
Prost
quelle
Bei mehreren Monitoren und Wenn Sie sich lieber auf den richtigen Monitor / Bildschirm konzentrieren möchten, können Sie folgende Zeilen ausprobieren:
quelle