AutoSize 属性概述

AutoSize 属性使控件能够更改其大小(如有必要),以达到由 PreferredSize 属性指定的值。 通过设置 AutoSizeMode 属性,可以调整特定控件的大小调整行为。

AutoSize 行为

只有一些控件支持 AutoSize 属性。 此外,一些支持 AutoSize 属性的控件也支持 AutoSizeMode 属性。

根据特定控件类型以及 AutoSizeMode 属性的值(如果该属性存在),AutoSize 属性可产生某些不同的行为。 下表描述了始终正确的行为,并提供每种行为的简要说明:

始终正确的行为

说明

自动大小调整是运行时功能。

这意味着不会在增大或缩小控件后不产生进一步的影响。

控件更改大小时其 Location 属性的值始终保持不变。

当控件的内容导致控件增大时,控件向右向下增大。 控件不会向左增大。

AutoSize 为 true 时,DockAnchor 属性将起作用。

控件的 Location 属性的值会调整为正确值。

注意   Label 控件是此规则的例外。 将停靠的 Label 控件的 AutoSize 属性值设置为 true 时,Label 控件不会拉伸。

无论控件的 AutoSize 属性的值是什么,控件的 MaximumSizeMinimumSize 属性都始终会起作用。

MaximumSizeMinimumSize 属性不受 AutoSize 属性影响。

默认情况下不设置最小大小。

这意味着,如果将某个控件设置为依据 AutoSize 缩小,且该控件中没有内容,则该控件的 Size 属性的值为 0,0。 这种情况下,该控件将缩小为一个点,并不容易看到。

如果控件没有实现 GetPreferredSize 方法,则 GetPreferredSize 方法返回分配给 Size 属性的上一个值。

这意味着将 AutoSize 设置为 true 不会产生任何效果。

TableLayoutPanel 单元格中的控件始终会缩小以适合单元格,直至达到控件的 MinimumSize

此大小将强制为最大大小。 单元格是 AutoSize 行或列的部分时并非如此。

AutoSizeMode 属性

AutoSizeMode 属性提供了对默认 AutoSize 行为的更多细节上的控制。 AutoSizeMode 属性指定控件如何根据其内容调整自身大小。 例如,内容可以是 Button 控件的文本或容器的子控件。

下表显示了 AutoSizeMode 设置以及每种设置引起的行为的说明。

AutoSizeMode 设置

行为

GrowAndShrink

控件增大或缩小以包含其内容。

MinimumSizeMaximumSize 的值将起作用,但将忽略 Size 属性的当前值。

具有 AutoSize 属性但没有 AutoSizeMode 属性的控件的行为与此相同。

GrowOnly

控件会增大到足以包含其内容,但不会缩小到小于由其 Size 属性指定的值。

这是 AutoSizeMode 的默认值。

支持 AutoSize 属性的控件

下表列出了支持 AutoSize 和 AutoSizeMode 属性的控件。

AutoSize 支持

控件类型

  • 支持 AutoSize 属性。

  • 没有 AutoSizeMode 属性。

CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBoxTextBox 基控件)

NumericUpDown

RadioButton

TextBox

TrackBar

  • 支持 AutoSize 属性。

  • 支持 AutoSizeMode 属性。

Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel

CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

设计环境中的 AutoSize

下表描述了控件在设计时基于其 AutoSize 和 AutoSizeMode 属性的值的大小调整行为。

重写 SelectionRules 属性可确定给定控件是否处于用户可调整大小的状态。 下表中,“不能”表示只有 Moveable,“能”表示 AllSizeableMoveable

AutoSize 设置

设计时调整大小操作

  • AutoSize = true

  • 没有 AutoSizeMode 属性。

除以下控件外,用户不能在设计时调整控件的大小:

用户不能在设计时调整控件的大小。

用户可以在设计时调整控件的大小。 当设置了 Size 属性时,用户只能增加控件的大小。

用户可以在设计时调整控件的大小。

提示

为使工作效率最大化,Windows 窗体设计器隐藏了 Form 类的 AutoSize 属性。 设计时,无论窗体的实际设置如何,该窗体的行为都如同将 AutoSize 属性设置为 false。 运行时,不做任何特殊处理,并按属性设置的指定应用 AutoSize 属性。

请参见

参考

AutoSize

PreferredSize

GetPreferredSize