Festlegen der Position und Größe eines Formulars (Windows Forms .NET)

Wenn ein Formular erstellt wird, werden die Größe und Position zunächst auf einen Standardwert festgelegt. Die Standardgröße eines Formulars beträgt im Allgemeinen eine Höhe und Breite von 800 × 500 Pixel. Die ursprüngliche Position beim Anzeigen des Formulars hängt von einigen unterschiedlichen Einstellungen ab.

Sie können die Größe eines Formulars zur Entwurfszeit mit Visual Studio und zur Laufzeit mit Code ändern.

Wichtig

Der Desktopleitfaden zu .NET 7 und .NET 6 ist in Bearbeitung.

Ändern der Größe mit dem Designer

Nachdem dem Projekt ein neues Formular hinzugefügt wurde, kann die Größe eines Formulars auf zwei verschiedene Arten festgelegt werden. Erstens können Sie die Größe mithilfe der Größenziehpunkte im Designer anpassen. Durch Ziehen des rechten oder unteren Rands oder durch Ziehen der Ecke kann die Größe des Formulars geändert werden.

Right click solution explorer to add new form to windows forms project with grips

Die zweite Möglichkeit besteht darin, die Größe des Formulars bei geöffnetem Designer im Eigenschaftenbereich zu ändern. Klicken Sie dazu auf das Formular, und suchen Sie den Bereich Eigenschaften in Visual Studio. Scrollen Sie nach unten zu Größe, und erweitern Sie den Abschnitt. Sie können die Breite und Höhe manuell festlegen.

Right click solution explorer to add new form to windows forms project

Ändern der Größe im Code

Obwohl der Designer die anfängliche Größe eines Formulars festlegt, können Sie diese im Code ändern. Es bietet sich an, die Größe eines Formulars im Code zu ändern, wenn die Anwendung feststellt, dass die Standardgröße des Formulars unzureichend ist.

Passen Sie zum Ändern der Größe eines Formulars die Size-Eigenschaft an, die die Breite und Höhe des Formulars darstellt.

Ändern der Größe des aktuellen Formulars

Sie können die Größe des aktuellen Formulars ändern, solange der Code im Kontext des Formulars ausgeführt wird. Beispiel: Form1 enthält eine Schaltfläche, die den Click-Ereignishandler aufruft, wenn sie angeklickt wird, um die Größe des Formulars zu ändern:

private void button1_Click(object sender, EventArgs e) =>
    Size = new Size(250, 200);
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Size = New Drawing.Size(250, 200)
End Sub

Ändern der Größe eines anderen Formulars

Sie können die Größe eines anderen Formulars nach dessen Erstellung mithilfe der Variablen ändern, die auf das Formular verweist. Beispiel: Sie verfügen über die beiden Formulare Form1 (in diesem Beispiel das Startformular) und Form2. Form1 weist eine Schaltfläche auf, die das Click-Ereignis aufruft, wenn sie angeklickt wird. Der Handler dieses Ereignisses erstellt eine neue Instanz des Formulars Form2, legt die Größe fest und zeigt das Formular dann an:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    form.Size = new Size(250, 200);
    form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Dim form = New Form2 With {
        .Size = New Drawing.Size(250, 200)
    }
    form.Show()
End Sub

Wenn Size nicht manuell festgelegt wird, entspricht die Standardgröße des Formulars der zur Entwurfszeit festgelegten Größe.

Positionieren mit dem Designer

Wenn eine Formularinstanz erstellt und angezeigt wird, wird die ursprüngliche Position des Formulars durch die StartPosition-Eigenschaft bestimmt. Die Location-Eigenschaft enthält die aktuelle Position des Formulars. Beide Eigenschaften können über den Designer festgelegt werden.

visual studio properties pane with start position highlighted

Enumeration „FormStartPosition“ BESCHREIBUNG
CenterParent Das Formular wird innerhalb des übergeordneten Formulars zentriert.
CenterScreen Das Formular wird bei der aktuellen Anzeige zentriert.
Manuell Die Position des Formulars wird durch die Location-Eigenschaft bestimmt.
WindowsDefaultBounds Das Formular wird an der Windows-Standardposition positioniert, und seine Größe wird in die von Windows festgelegte Standardgröße geändert.
WindowsDefaultLocation Das Formular wird an der Windows-Standardposition positioniert, und seine Größe wird nicht geändert.

Der CenterParent-Wert funktioniert nur mit Formularen, bei denen es sich entweder um ein untergeordnetes MDI-Formular (Multiple Document Interface, Schnittstelle für mehrere Dokumente) oder um ein normales Formular handelt, das mit der Methode ShowDialog angezeigt wird. CenterParent hat keine Auswirkung auf ein normales Formular, das mit der Methode Show angezeigt wird. Verwenden Sie den folgenden Code, um ein Formular (form-Variable) in einem anderen Formular (parentForm-Variable) zu zentrieren:

form.StartPosition = FormStartPosition.Manual;
form.Location = new Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
                          parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y);
form.Show();
form.StartPosition = Windows.Forms.FormStartPosition.CenterParent.Manual
form.Location = New Drawing.Point(parentForm.Width / 2 - form.Width / 2 + parentForm.Location.X,
                                  parentForm.Height / 2 - form.Height / 2 + parentForm.Location.Y)

form.Show()

Positionieren mit Code

Obwohl die Startposition eines Formulars mit dem Designer festgelegt werden kann, können Sie im Code entweder den Modus für die Startposition ändern oder die Position manuell festlegen. Das Positionieren eines Formulars mithilfe von Code ist hilfreich, wenn Sie ein Formular manuell in Relation zum Bildschirm oder anderen Formularen positionieren und in der Größe anpassen müssen.

Verschieben des aktuellen Formulars

Sie können das aktuelle Formular verschieben, solange der Code im Kontext des Formulars ausgeführt wird. Beispiel: Form1 enthält eine Schaltfläche, die den Click-Ereignishandler aufruft, wenn sie angeklickt wird. Der Handler in diesem Beispiel ändert die Position des Formulars in den oberen linken Bildschirmbereich, indem er die Location-Eigenschaft festlegt:

private void button1_Click(object sender, EventArgs e) =>
    Location = new Point(0, 0);
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Location = New Drawing.Point(0, 0)
End Sub

Positionieren eines anderen Formulars

Sie können die Position eines anderen Formulars nach dessen Erstellung mithilfe der Variablen ändern, die auf das Formular verweist. Beispiel: Sie verfügen über die beiden Formulare Form1 (in diesem Beispiel das Startformular) und Form2. Form1 weist eine Schaltfläche auf, die das Click-Ereignis aufruft, wenn sie angeklickt wird. Der Handler dieses Ereignisses erstellt eine neue Instanz des Formulars Form2 und legt den Speicherort fest:

private void button1_Click(object sender, EventArgs e)
{
    Form2 form = new Form2();
    form.Location = new Point(0, 0);
    form.Show();
}
Private Sub Button1_Click(sender As Object, e As EventArgs)
    Dim form = New Form2 With {
        .Location = New Drawing.Point(0, 0)
    }
    form.Show()
End Sub

Wenn der Location nicht festgelegt ist, basiert die Standardposition des Formulars auf der Eigenschaft StartPosition, die zur Entwurfszeit festgelegt wurde.

Siehe auch