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