Dela via


Placera och ändra storlek på ett formulär

När ett formulär skapas anges storleken och platsen till ett standardvärde. Standardstorleken för ett formulär är vanligtvis en bredd och höjd på 800 x 500 bildpunkter. Den första platsen, när formuläret visas, beror på några olika inställningar.

Du kan ändra storleken på ett formulär vid designtillfället med Visual Studio och vid körning med kod.

Ändra storlek med designern

När ett nytt formulär har lagts till i projektet anges storleken på ett formulär på två olika sätt. Först kan du ställa in det med storleksgreppen i designern. Genom att dra antingen höger kant, nederkant eller hörn kan du ändra storlek på formuläret.

Högerklicka på Solutionsutforskaren för att lägga till ett nytt formulär i ett Windows Forms-projekt.

Det andra sättet att ändra storlek på formuläret när designern är öppen är genom egenskapsfönstret. Välj formuläret och leta sedan upp fönstret Egenskaper i Visual Studio. Rulla ned till storlek och expandera den. Du kan ange bredd och höjd manuellt.

Högerklicka på Solution Explorer för att lägga till ett nytt formulär i windows forms-projektet

Ändra storlek i kod

Även om designern anger startstorleken för ett formulär kan du ändra storlek på det via kod. Att använda kod för att ändra storlek på ett formulär är användbart när något i ditt program avgör att formulärets standardstorlek är otillräcklig.

Om du vill ändra storlek på ett formulär ändrar du Size, som representerar formulärets bredd och höjd.

Ändra storlek på det aktuella formuläret

Du kan ändra storleken på det aktuella formuläret så länge koden körs i formulärets kontext. Om du till exempel har Form1 med en knapp på den, som när den klickas på anropar Click händelsehanteraren för att ändra storlek på formuläret:

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

Ändra storlek på en annan form

Du kan ändra storleken på ett annat formulär när det har skapats med hjälp av variabeln som refererar till formuläret. Anta till exempel att du har två formulär ( Form1 startformuläret i det här exemplet) och Form2. Form1 har en knapp som anropar Click händelsen när du klickar. Hanteraren för den här händelsen skapar en ny instans av Form2 formuläret, anger storleken och visar den sedan:

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

Size Om inte har angetts manuellt är formulärets standardstorlek vad det har angetts till under designtiden.

Placera med designern

När en formulärinstans skapas och visas bestäms formulärets ursprungliga plats av StartPosition egenskapen. Egenskapen Location innehåller formulärets aktuella plats. Båda egenskaperna kan anges via designern.

visual Studio-egenskapsfönstret med startpositionen markerad

FormStartPosition-uppräkning Beskrivning
CenterParent Formuläret är centrerat inom gränserna för moderformuläret.
CenterScreen Formuläret är centrerat på den aktuella skärmen.
Handbok Formulärets position bestäms av egenskapen Plats .
WindowsStandardgränser Formuläret placeras på Standardplatsen för Windows och ändras till den standardstorlek som bestäms av Windows.
WindowsStandardplats Formuläret är placerat på Windows standardplats och storlek ändras inte.

CenterParent-värdet fungerar bara med formulär som antingen är ett MDI-underdokument-formulär eller ett vanligt formulär som visas med ShowDialog-metoden. CenterParent har ingen effekt på ett normalt formulär som visas med Show metoden. Om du vill centrera ett formulär (form variabel) till ett annat formulär (parentForm variabel) använder du följande kod:

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()

Position med kod

Även om designern kan användas för att ange startplatsen för ett formulär kan du använda kod för att antingen ändra läget för startpositionen eller ange platsen manuellt. Att använda kod för att placera ett formulär är användbart om du behöver placera och ändra storlek på ett formulär manuellt i förhållande till skärmen eller andra formulär.

Flytta det aktuella formuläret

Du kan flytta det aktuella formuläret så länge koden körs i formulärets kontext. Om du till exempel har Form1 med en knapp på, som när den klickas på anropar händelsehanteraren Click. Hanteraren i det här exemplet ändrar platsen för formuläret längst upp till vänster på skärmen genom att ange Location egenskapen:

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

Placera ett annat formulär

Du kan ändra platsen för ett annat formulär när det har skapats med hjälp av variabeln som refererar till formuläret. Anta till exempel att du har två formulär ( Form1 startformuläret i det här exemplet) och Form2. Form1 har en knapp som anropar Click händelsen när du klickar. Hanteraren för den här händelsen skapar en ny instans av Form2 formuläret och anger platsen:

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

Location Om inte har angetts baseras formulärets standardposition på vad StartPosition egenskapen har angetts till vid designtillfället.

Se även