如何停靠和定位控件(Windows 窗体 .NET)

如果要设计用户可以在运行时重设大小的窗体,窗体上的控件应正确重设大小并重新定位。 当窗体更改其大小时,控件有两个属性可帮助自动放置和调整大小。

重要

面向 .NET 7 和 .NET 6 的桌面指南文档正在撰写中。

  • Control.Dock

    停靠的控件填充控件容器(窗体或容器控件)的边缘。 例如,Windows 资源管理器将其 TreeView 控件停靠在窗口的左侧,将其 ListView 控件停靠在窗口的右侧。 停靠模式可以是控件容器的任何一侧,也可以设置为填充容器的剩余空间。

    A windows form demonstrating the different dock modes for a control

    控件以反向 z 顺序停靠,且 Dock 属性与 AutoSize 属性交互。 有关详细信息,请参阅自动调整大小

  • Control.Anchor

    重设已定位的控件窗体的大小后,控件将保持它与定位点位置之间的距离。 例如,如果你有一个定位在窗体左边缘、右边缘和下边缘的 TextBox 控件,那么当窗体的大小重设后,TextBox 控件会在水平方向重设大小,使其与窗体的右侧和左侧保持相同距离。 控件还在垂直方向定位自身,以便其位置始终与窗体下边缘的距离相同。 如果未定位控件并重设了窗体大小,则控件相对于窗体边缘的位置将发生变化。

    A Windows form demonstrating the different anchor modes for a control

有关详细信息,请参阅控件的位置和布局

停靠控件

控件通过设置其 Dock 属性来停靠。

注意

继承的控件必须为 Protected 才能停靠。 若要更改控件的访问级别,请在“属性”窗口中设置其 Modifier 属性

使用设计器

使用 Visual Studio 设计器的“属性”窗口来设置控件的停靠模式

  1. 选择设计器中的控件。

  2. 在“属性”窗口中,选择“停靠”属性右侧的箭头

    Visual Studio Properties pane for .NET Windows Forms with Dock property shown.

  3. 选择表示要停靠控件的容器边缘的按钮。 若要填充控件窗体的内容或容器控件的内容,请按中心框。 单击“(无)”以禁用停靠

    Visual Studio Properties pane for .NET Windows Forms with Dock property expanded.

控件将自动重设大小以适应停靠边缘的边界。

以编程方式设置停靠

  1. 设置控件上的 Dock 属性。 在此示例中,按钮停靠在其容器右侧:

    button1.Dock = DockStyle.Right;
    
    button1.Dock = DockStyle.Right
    

定位控件

通过将控件的 Anchor 属性设置为一个或多个值来将其定位到边缘。

注意

某些控件(如 ComboBox 控件)对高度有限制。 将控件定位到其窗体或容器底部不能强制控件超出其高度限制。

继承的控件必须为 Protected 才能定位。 若要更改控件的访问级别,请在“属性”窗口中设置其 Modifiers 属性

使用设计器

使用 Visual Studio 设计器的“属性”窗口来设置控件的定位边缘

  1. 选择设计器中的控件。

  2. 在“属性”窗口中,选择“定位点”属性右侧的箭头

    Visual Studio Properties pane for .NET Windows Forms with Anchor property shown.

  3. 若要设置或取消设置定位点,请选择十字的上、下、左或右臂。

    Visual Studio Properties pane for .NET Windows Forms with Anchor property expanded.

以编程方式设置定位点

  1. 设置控件上的 Anchor 属性。 在此示例中,按钮定位在其容器的右侧和底部:

    button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
    
    button1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
    

另请参阅