AutoSize 屬性概觀

屬性 AutoSize 可讓控制項視需要變更其大小,以達到 屬性所 PreferredSize 指定的值。 您可以藉由設定 AutoSizeMode 屬性來調整特定控制項的大小調整行為。

自動調整行為

只有某些控制項支援 AutoSize 屬性。 此外,某些支援 屬性的 AutoSize 控制項也支援 AutoSizeMode 屬性。

如果屬性存在,則 AutoSize 屬性會產生一些不同的行為,視特定控制項類型和 屬性的值 AutoSizeMode 而定。 下表描述一律為 true 的行為,並提供每個行為的簡短描述:

一律為 true 行為 描述
自動調整大小是執行時間功能。 這表示它永遠不會成長或縮小控制項,然後沒有進一步的效果。
如果控制項變更大小,其 Location 屬性的值一律會維持不變。 當控制項的內容導致它成長時,控制項會向右和向下成長。 控制項不會向左成長。
DocktrueAutoSize ,會接受 和 Anchor 屬性。 控制項 Location 的 屬性值會調整為正確的值。

注意 控制項 Label 是此規則的例外狀況。 當您將停駐 Label 控制項的 AutoSize 屬性值設定為 true 時, Label 控制項將不會延展。
不論其 AutoSize 屬性的值為何,控制項的 MaximumSizeMinimumSize 屬性一律都會受到接受。 MaximumSizeMinimumSize 屬性不會受到 AutoSize 屬性的影響。
預設不會設定最小大小。 這表示如果控制項設定為縮小, AutoSize 而且沒有內容,其 Size 屬性的值會是 0,0。 在此情況下,您的控制項會縮小到某個點,而且不會立即顯示。
如果控制項未實 GetPreferredSize 作 方法,此方法 GetPreferredSize 會傳回指派給 Size 屬性的最後一個值。 這表示 將 設定 AutoSizetrue 不會有任何作用。
儲存格中的 TableLayoutPanel 控制項一律會縮小以符合儲存格,直到到達儲存格 MinimumSize 為止。 此大小會強制為大小上限。 當儲存格是資料列或資料行的一 AutoSize 部分時,就不是這種情況。

AutoSizeMode 屬性

屬性 AutoSizeMode 提供更精細的預設 AutoSize 行為控制。 屬性 AutoSizeMode 會指定控制項如何調整其內容的大小。 例如,內容可以是控制項的文字 Button 或容器的子控制項。

下表顯示 AutoSizeMode 每個設定所產生之行為的設定和描述。

AutoSizeMode 設定 行為
GrowAndShrink 控制項會成長或縮小以包含其內容。

MinimumSize 接受 和 MaximumSize 值,但會忽略 屬性的 Size 目前值。

這與具有 AutoSize 屬性的控制項和沒有 AutoSizeMode 屬性的行為相同。
GrowOnly 控制項會視需要增加以包含其內容,但不會縮小其 屬性所 Size 指定的值。

這是 AutoSizeMode 的預設值。

支援 AutoSize 屬性的控制項

下表列出支援 和 AutoSizeMode 屬性的 AutoSize 控制項。

AutoSize 支援 控制項類型
- AutoSize 支援 屬性。
- 沒有 AutoSizeMode 屬性。
CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBoxTextBox 基)

NumericUpDown

RadioButton

TextBox

TrackBar
- AutoSize 支援 屬性。
- AutoSizeMode 支援 屬性。
Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel
- 沒有 AutoSize 屬性。 CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

在設計環境中自動調整大小

下表根據控制項 AutoSizeAutoSizeMode 屬性的值,在設計階段描述控制項的大小調整行為。

覆寫 屬性, SelectionRules 以判斷指定的控制項是否處於使用者可調整大小的狀態。 在下表中,「cannot」 表示 Moveable 只有 「can」 表示 AllSizeableMoveable

自動調整設定 設計階段調整大小手勢
- AutoSize = true
- 沒有 AutoSizeMode 屬性。
使用者無法在設計階段調整控制項的大小,但下列控制項除外:

- TextBox
- MaskedTextBox
- RichTextBox
- TrackBar
- AutoSize = true
- AutoSizeMode = GrowAndShrink
使用者無法在設計階段調整控制項的大小。
- AutoSize = true
- AutoSizeMode = GrowOnly
使用者可以在設計階段調整控制項的大小。 Size設定 屬性時,使用者只能增加控制項的大小。
- AutoSize = false、 或 AutoSize 屬性已隱藏。 使用者可以在設計階段調整控制項的大小。

注意

為了將生產力最大化,Visual Studio 中的 Windows Forms 設計工具會 AutoSize 遮蔽 類別的 Form 屬性。 在設計階段,無論其實際設定為何,表單的行為就 AutoSize 如同 屬性設定為 false 。 在執行時間,不會建立任何特殊的住宿,而且 AutoSize 屬性會套用為屬性設定所指定。

另請參閱