共用方式為


如何安置表單和調整其大小 (Windows Forms .NET)

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

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

使用設計工具設定調整大小

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

以滑鼠右鍵按一下方案總管,使用底框將新的表單加入至 Windows Forms 專案

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

以滑鼠右鍵按一下方案總管,將新的表單加入至 Windows Forms 專案

在程式碼中調整大小

即使設計工具設定表單的起始大小,您也可以透過程式碼加以調整。 當您的應用程式內容判斷表單預設大小不足時,使用程式碼調整表單大小的功能非常實用。

若要調整表單大小,請變更代表表單寬度和高度的 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 (本範例中的啟動表單) 和 Form2 兩個表單。 當按一下 Form1 中其中一個按鈕,會叫用 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 屬性窗格

FormStartPosition Enum 描述
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 (本範例中的啟動表單) 和 Form2 兩個表單。 當按一下 Form1 中其中一個按鈕,會叫用 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 屬性。

另請參閱