AutoSize プロパティの概要

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

AutoSize の動作

AutoSize プロパティに対応しているコントロールは一部だけです。 また、AutoSize プロパティに対応している一部のコントロールは、AutoSizeMode プロパティにも対応しています。

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

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

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

AutoSizeMode プロパティ

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

次の表に、AutoSizeMode の設定を示し、その設定によって引き起こされる動作について説明します。

AutoSizeMode の設定 動作
GrowAndShrink コントロールのサイズが内容に合わせて拡大または縮小されます。

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 プロパティをオーバーライドして、特定のコントロールがユーザーによってサイズ変更できる状態かどうかを決定します。 次の表で、"できない" は Moveable のみ、"できる" は AllSizeable および Moveable を意味します。

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 プロパティがプロパティ設定によって指定されたとおりに適用されます。

関連項目