Sdílet prostřednictvím


Umístění a velikost formuláře (model Windows Forms .NET)

Při vytvoření formuláře se velikost a umístění zpočátku nastaví na výchozí hodnotu. Výchozí velikost formuláře je obecně šířka a výška 800 × 500 pixelů. Počáteční umístění při zobrazení formuláře závisí na několika různých nastaveních.

V sadě Visual Studio můžete změnit velikost formuláře v době návrhu a v době běhu pomocí kódu.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

Změna velikosti pomocí návrháře

Po přidání nového formuláře do projektu se velikost formuláře nastaví dvěma různými způsoby. Nejprve ji můžete nastavit s úchyty velikosti v návrháři. Přetažením pravého okraje, dolního okraje nebo rohu můžete změnit velikost formuláře.

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

Druhým způsobem, jak můžete změnit velikost formuláře při otevření návrháře, je podokno vlastností. Vyberte formulář a pak v sadě Visual Studio vyhledejte podokno Vlastnosti . Posuňte se dolů na velikost a rozbalte ji. Šířku a výšku můžete nastavit ručně.

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

Změna velikosti v kódu

I když návrhář nastaví počáteční velikost formuláře, můžete ji změnit pomocí kódu. Použití kódu ke změně velikosti formuláře je užitečné, když něco o vaší aplikaci zjistí, že výchozí velikost formuláře není dostatečná.

Chcete-li změnit velikost formuláře, změňte Sizehodnotu , která představuje šířku a výšku formuláře.

Změna velikosti aktuálního formuláře

Velikost aktuálního formuláře můžete změnit, pokud kód běží v kontextu formuláře. Pokud máte Form1 například tlačítko, které po kliknutí vyvolá obslužnou rutinu Click události ke změně velikosti formuláře:

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

Změna velikosti jiného formuláře

Velikost jiného formuláře můžete po vytvoření změnit pomocí proměnné odkazující na formulář. Řekněme například, že máte dva formuláře ( Form1 spouštěcí formulář v tomto příkladu) a Form2. Form1 má tlačítko, které po kliknutí vyvolá Click událost. Obslužná rutina této události vytvoří novou instanci Form2 formuláře, nastaví velikost a zobrazí ji:

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 Pokud není nastavená ručně, výchozí velikost formuláře je nastavená během návrhu.

Umístění s návrhářem

Při vytvoření a zobrazení instance formuláře je počáteční umístění formuláře určeno StartPosition vlastností. Vlastnost Location obsahuje aktuální umístění formuláře. Obě vlastnosti lze nastavit prostřednictvím návrháře.

visual studio properties pane with start position highlighted

FormStartPosition – výčet Popis
CenterParent Formulář je zacentrován v mezích nadřazeného formuláře.
CenterScreen Formulář je na střed aktuálního zobrazení.
Ručně Pozice formuláře je určena vlastností Location .
WindowsDefaultBounds Formulář se umístí do výchozího umístění Windows a změní se na výchozí velikost určenou systémem Windows.
WindowsDefaultLocation Formulář se umístí do výchozího umístění Windows a velikost se nesměšní.

Hodnota CenterParent funguje pouze s formuláři, které jsou buď podřízeným formulářem s více rozhraním dokumentu (MDI), nebo s normálním formulářem, který je zobrazen metodou ShowDialog . CenterParent nemá žádný vliv na normální formulář, který je zobrazen s metodou Show . Chcete-li zacentrovat formulář (form proměnnou) na jiný formulář (parentForm proměnnou), použijte následující kód:

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

Pozice s kódem

I když je možné použít návrháře k nastavení počátečního umístění formuláře, můžete použít kód buď změnit režim počáteční pozice, nebo nastavit umístění ručně. Použití kódu k umístění formuláře je užitečné, pokud potřebujete formulář ručně umístit a změnit jeho velikost ve vztahu k obrazovce nebo jiným formulářům.

Přesunutí aktuálního formuláře

Aktuální formulář můžete přesunout, dokud kód běží v kontextu formuláře. Pokud máte Form1 například tlačítko, které po kliknutí vyvolá obslužnou rutinu Click události. Obslužná rutina v tomto příkladu změní umístění formuláře do levého horního rohu obrazovky nastavením Location vlastnosti:

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

Umístění jiného formuláře

Umístění jiného formuláře můžete po vytvoření změnit pomocí proměnné odkazující na formulář. Řekněme například, že máte dva formuláře ( Form1 spouštěcí formulář v tomto příkladu) a Form2. Form1 má tlačítko, které po kliknutí vyvolá Click událost. Obslužná rutina této události vytvoří novou instanci Form2 formuláře a nastaví umístění:

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 Pokud není nastavená, výchozí pozice formuláře je založena na tom, na čem StartPosition byla vlastnost nastavena v době návrhu.

Viz také