AutoSize プロパティの概要
AutoSize プロパティを使用すると、必要に応じて、PreferredSize プロパティによって指定された値を取得してコントロールのサイズを変更できます。 特定のコントロールのサイズ変更動作を調整するには、AutoSizeMode
プロパティを設定します。
AutoSize の動作
AutoSize プロパティに対応しているコントロールは一部だけです。 また、AutoSize プロパティに対応している一部のコントロールは、AutoSizeMode
プロパティにも対応しています。
AutoSize プロパティは、特定のコントロールの種類と AutoSizeMode
プロパティの値 (プロパティが存在する場合) に応じて、多少異なる動作をします。 次の表では、常に行われる動作を示して、それぞれを簡単に説明します。
動作は常にこうなります | 説明 |
---|---|
サイズの自動調整は、実行時の機能です。 | これは、コントロールが拡大または縮小されることはなく、それ以上の効果がないことを意味します。 |
コントロールのサイズが変更された場合、その Location プロパティの値は常に一定です。 | コントロールの内容が大きくなると、コントロールは右および下方向に拡大されます。 コントロールが左に拡大されることはありません。 |
AutoSize が true のとき、Dock および Anchor プロパティが適用されます。 |
コントロールの Location プロパティの値は、正しい値に調整されます。 注Label コントロールはこの規則の例外です。 ドッキングされた Label コントロールの AutoSize プロパティの値を true に設定すると、Label コントロールは伸縮しません。 |
コントロールの MaximumSize および MinimumSize プロパティは、AutoSize プロパティの値に関係なく、常に適用されます。 | MaximumSize および MinimumSize プロパティは、AutoSize プロパティの影響を受けません。 |
既定では、最小サイズは設定されていません。 | つまり、コントロールが AutoSize に従って縮小するように設定されていて、内容がない場合、その Size プロパティの値は 0,0 です。 この場合、コントロールは縮小されて 1 つのポイントになり、容易に目につかなくなります。 |
コントロールに GetPreferredSize メソッドが実装されていない場合、GetPreferredSize メソッドからは Size プロパティに割り当てられた最後の値が返されます。 | これは、AutoSize を true に設定しても効果がないことを意味します。 |
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 プロパティがプロパティ設定によって指定されたとおりに適用されます。
関連項目
.NET Desktop feedback