次の方法で共有


AutoSize プロパティの概要

AutoSize プロパティを使用すると、必要に応じてコントロールのサイズを変更して、PreferredSize プロパティで指定された値を取得できます。 特定のコントロールのサイズ変更の動作を調整するには、AutoSizeMode プロパティを設定します。

AutoSize の動作

AutoSize プロパティをサポートするのは、一部のコントロールのみです。 さらに、AutoSize プロパティをサポートする一部のコントロールでは、AutoSizeMode プロパティもサポートされています。

プロパティが存在する場合、AutoSize プロパティは、特定のコントロールの種類と AutoSizeMode プロパティの値に応じて、多少異なる動作を生成します。 次の表では、常に true である動作について説明し、それぞれの簡単な説明を示します。

動作は常にこうなります 説明
自動サイズ設定は実行時機能です。 つまり、コントロールが拡大または縮小されることは決してなく、それ以上の効果はありません。
コントロールのサイズが変更された場合、その Location プロパティの値は常に一定のままになります。 コントロールの内容が大きくなると、コントロールは右方向と下方向に拡大します。 コントロールは左に拡張されません。
AutoSizetrue のとき、Dock および Anchor プロパティが適用されます。 コントロールの Location プロパティの値は、正しい値に調整されます。

Label コントロールは、この規則の例外です。 ドッキングされた Label コントロールの AutoSize プロパティの値を trueに設定すると、Label コントロールは拡大されません。
コントロールの MaximumSize プロパティと MinimumSize プロパティは、AutoSize プロパティの値に関係なく常に受け入れられます。 MaximumSize プロパティと MinimumSize プロパティは、AutoSize プロパティの影響を受けません。
既定では、最小サイズは設定されていません。 つまり、コントロールが AutoSize の下で縮小するように設定されていて、コンテンツがない場合、その Size プロパティの値は 0,0 になります。 この場合、コントロールはポイントに縮小され、すぐには表示されません。
コントロールが GetPreferredSize メソッドを実装していない場合、GetPreferredSize メソッドは、Size プロパティに割り当てられた最後の値を返します。 つまり、AutoSizetrue に設定しても効果はありません。
TableLayoutPanel セル内のコントロールは、MinimumSize に達するまで、常にセルに収まるように縮小されます。 このサイズは、最大サイズとして適用されます。 これは、セルが AutoSize 行または列の一部である場合には当たりません。

AutoSizeMode プロパティ

AutoSizeMode プロパティを使用すると、既定の AutoSize 動作をよりきめ細かく制御できます。 AutoSizeMode プロパティは、コントロールがコンテンツに合わせてサイズを設定する方法を指定します。 たとえば、コンテンツには、Button コントロールのテキストやコンテナーの子コントロールがあります。

次の表は、AutoSizeMode 設定と、各設定が引き出す動作の説明を示しています。

AutoSizeMode の設定 動作
成長と縮小 コントロールはその内容に合わせて拡大または縮小されます。

MinimumSize 値と MaximumSize 値は受け入れられますが、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
- AutoSize プロパティはありません。 CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

デザイン環境での AutoSize

次の表では、AutoSize プロパティと AutoSizeMode プロパティの値に基づいて、デザイン時のコントロールのサイズ変更動作について説明します。

SelectionRules プロパティをオーバーライドして、特定のコントロールがユーザーがサイズ変更可能な状態であるかどうかを判断します。 次の表では、"cannot" は Moveable のみを意味し、"can" は AllSizeableMoveableを意味します。

AutoSize の設定 デザイン時のサイズ設定ジェスチャ
- AutoSize = true
- AutoSizeMode プロパティはありません。
次のコントロールを除き、ユーザーはデザイン時にコントロールのサイズを変更できません。

- TextBox
- MaskedTextBox
- RichTextBox
- TrackBar
- AutoSize = true
- AutoSizeMode = GrowAndShrink
ユーザーはデザイン時にコントロールのサイズを変更できません。
- AutoSize = true
- AutoSizeMode = GrowOnly
ユーザーは、デザイン時にコントロールのサイズを変更できます。 Size プロパティが設定されている場合、ユーザーはコントロールのサイズのみを増やすことができます。
- AutoSize = false、またはプロパティ AutoSize 非表示です。 ユーザーはデザイン時にコントロールのサイズを変更できます。

手記

生産性を最大化するために、Visual Studio の Windows フォーム デザイナーは、Form クラスの AutoSize プロパティをシャドウします。 デザイン時、フォームは、実際の設定に関係なく、AutoSize プロパティが falseに設定されているかのように動作します。 実行時に特別な配慮はされず、プロパティ設定で指定された AutoSize プロパティが適用されます。

関連項目