共用方式為


AutoSize 屬性概觀

更新:2007 年 11 月

AutoSize 屬性允許控制項變更大小,如果需要,還可獲得由 PreferredSize 屬性所指定的值。您可藉由設定 AutoSizeMode 屬性,調整特定控制項的調整大小行為。

AutoSize 行為

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

根據特定的控制項型別和 AutoSizeMode 屬性 (如果該屬性存在) 的值,AutoSize 屬性可能會產生不同的行為。下表描述一定是 true 的行為,並為每個行為提供簡短說明:

永遠為 true 的行為

描述

自動調整大小是執行階段功能。

這表示它絕對不會放大或縮小控制項,然後並不會有進一步的作用。

若控制項變更大小,則 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 控制項的文字,或是容器 (Container) 的子控制項。

下表顯示 AutoSizeMode 設定,以及每個設定所引起的行為描述。

AutoSizeMode 設定

Behavior

GrowAndShrink

控制項會放大或縮小以包含它的內容。

會接受 MinimumSizeMaximumSize 值,但會忽略 Size 屬性目前的值。

這種行為與具有 AutoSize 屬性和不具有 AutoSizeMode 屬性的控制項相同。

GrowOnly

控制項會盡可能放大以包含它的內容,但不會縮小到比 Size 屬性所指定的值還小。

這是 AutoSizeMode 的預設值。

支援 AutoSize 屬性的控制項

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

AutoSize 支援

控制項型別

  • 支援 AutoSize 屬性:

  • 沒有 AutoSizeMode 屬性:

CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox 基底)

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 設計工具會遮蔽 Form 類別的 AutoSize 屬性。在設計階段期間,表單會當做 AutoSize 屬性是設定為 false 來運作,而不管它的實際設定。在執行階段中,沒有進行特殊調整,AutoSize 屬性會根據屬性設定的指定而套用。

請參閱

參考

AutoSize

PreferredSize

GetPreferredSize