Share via


如何定位和調整表單大小 (Windows Forms .NET)

建立表單時,大小和位置一開始會設定為預設值。 表單的預設大小通常是 800x500 圖元的寬度和高度 。 顯示表單時的初始位置取決於幾個不同的設定。

您可以使用 Visual Studio 在設計階段變更表單的大小,以及使用程式碼在執行時間變更表單的大小。

重要

.NET 7 和 .NET 6 的桌面指南檔正在建置中。

使用設計工具調整大小

將新表單 新增至專案之後 ,表單的大小會以兩種不同的方式設定。 首先,您可以在設計工具中設定大小夾。 藉由拖曳右邊緣、下邊緣或邊角,您可以調整表單的大小。

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

當設計工具開啟時,您可以調整表單大小的第二種方式是透過 [屬性] 窗格。 選取表單,然後在 Visual Studio 中尋找 [ 屬性 ] 窗格。 向下捲動以 調整大小 並加以展開。 您可以手動設定 Width Height

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

在程式碼中調整大小

即使設計工具設定表單的起始大小,您也可以透過程式碼調整它的大小。 當您的應用程式相關專案決定表單的預設大小不足時,使用程式碼調整表單大小會很有用。

若要調整表單大小,請變更 Size ,代表表單的寬度和高度。

調整目前表單的大小

只要程式碼在表單內容中執行,您就可以變更目前表單的大小。 例如,如果您有 Form1 按鈕,當按一下時會叫 Click 用事件處理常式來調整表單大小:

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

調整不同表單的大小

您可以使用參考表單的變數來變更另一個表單的大小。 例如,假設您有兩個表單 Form1 (本範例中的啟動表單) 和 Form2Form1 具有按鈕,當按一下時,會叫用 Click 事件。 此事件的處理常式會建立表單的新實例 Form2 、設定大小,然後顯示它:

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如果未手動設定 ,表單的預設大小就是在設計階段設定為 。

使用設計工具的位置

建立和顯示表單實例時,表單的初始位置是由 StartPosition 屬性決定。 屬性 Location 會保存表單目前的位置。 這兩個屬性都可以透過設計工具來設定。

visual studio properties pane with start position highlighted

FormStartPosition 列舉 描述
CenterParent 表單會置中于其父表單的界限內。
CenterScreen 表單會置中于目前的顯示器上。
手動 表單的位置取決於 Location 屬性。
WindowsDefaultBounds 表單位於 Windows 預設位置,而且會調整大小為 Windows 所決定的預設大小。
WindowsDefaultLocation 表單位於 Windows 預設位置,且不會調整大小。

CenterParent 值只適用于多個檔介面 (MDI) 子表單的表單,或是使用 ShowDialog 方法顯示的一般表單。 CenterParent 不會影響使用 Show 方法顯示的一般表單。 若要將表單 ( form 變數) 置中至另一個表單 ( parentForm 變數),請使用下列程式碼:

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

使用程式碼的位置

雖然設計工具可以用來設定表單的起始位置,但您可以使用程式碼變更開始位置模式或手動設定位置。 如果您需要手動定位及調整與螢幕或其他表單相關的表單大小,使用程式碼來定位表單會很有用。

移動目前的表單

只要程式碼是在表單內容中執行,您就可以移動目前的表單。 例如,如果您有 Form1 按鈕,則按一下時會叫 Click 用事件處理常式。 此範例中的處理常式會藉由設定 Location 屬性,將表單的位置變更為畫面的左上方:

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

放置不同的表單

您可以使用參考表單的變數來變更另一個表單的位置。 例如,假設您有兩個表單 Form1 (本範例中的啟動表單) 和 Form2Form1 具有按鈕,當按一下時,會叫用 Click 事件。 此事件的處理常式會建立表單的新實例 Form2 ,並設定位置:

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如果未設定 ,表單的預設位置會根據設計階段設定為 的屬性 StartPosition

另請參閱