如何定位和设置表单大小

创建窗体时,窗体的大小和位置被初始设定为默认值。 窗体的默认大小通常是宽度和高度 为 800x500 像素。 显示窗体时的初始位置取决于几个不同的设置。

您可以在设计时使用 Visual Studio 更改窗体的大小,也可以在运行时通过代码更改窗体的大小。

使用设计器调整大小

向项目 添加新窗体 后,窗体的大小采用两种不同的方式设置。 首先,可以使用设计器中工具栏的大小调节器设置它。 通过拖动右边缘、下边缘或角,可以调整窗体的大小。

右键单击解决方案资源管理器,将新窗体添加到具有手柄的 Windows 窗体项目

在设计器打开时,可以调整窗体大小的第二种方法是通过属性窗格。 选择窗体,然后在 Visual Studio 中找到 “属性 ”窗格。 向下滚动到 大小 并展开。 可以手动设置 宽度高度

右键单击解决方案资源管理器,将新窗体添加到 Windows 窗体项目

在代码中调整大小

即使设计器设置窗体的起始大小,也可以通过代码调整其大小。 当应用程序中的因素确定窗体的默认大小不足时,使用代码调整窗体大小非常有用。

若要调整窗体的大小,请更改 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 属性窗格

FormStartPosition 枚举 DESCRIPTION
CenterParent 窗体被调整为在其父窗体的边界内居中。
CenterScreen 表单在当前显示器上居中。
手动 窗体的位置由 Location 属性确定。
Windows默认界限 窗体位于 Windows 默认位置,大小调整为由 Windows 确定的默认大小。
Windows 默认位置 窗体位于 Windows 默认位置,不会调整大小。

CenterParent 值仅适用于作为多文档界面(MDI)子窗体的窗体,或使用ShowDialog方法显示的普通窗体。 使用 Show 方法显示的普通表单对 CenterParent 没有影响。 若要将窗体(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属性的设置。

另请参阅