AutoSize 속성 개요

AutoSize 속성을 사용하면 크기를 변경하는 컨트롤이 필요한 경우, PreferredSize 속성으로 지정된 값을 유지할 수 있습니다. AutoSizeMode 속성을 설정하여 특정 컨트롤의 크기 조정 동작을 조정합니다.

AutoSize 동작

일부 컨트롤만이 AutoSize 속성을 지원합니다. 뿐만 아니라, AutoSize 속성을 지원하는 일부 컨트롤도 AutoSizeMode 속성을 지원합니다.

AutoSize 속성은 특정 컨트롤 유형과 AutoSizeMode 속성의 값(속성이 있는 경우)에 따라, 약간 다른 동작을 생성합니다. 다음 표에서는 항상 참인 동작에 대해 설명하고 각 동작에 대해 간략하게 설명합니다.

항상 true 동작 Description
자동 크기 조정은 런타임 기능입니다. 즉, 컨트롤이 커지거나 줄어들지 않으므로 추가로 영향을 주지 않습니다.
컨트롤 크기가 변경되면 Location 속성 값은 항상 일정하게 유지됩니다. 컨트롤의 콘텐츠가 커지면 컨트롤은 오른쪽 및 아래쪽으로 커집니다. 컨트롤은 왼쪽으로 커지지 않습니다.
DockAnchor 속성은 AutoSizetrue인 경우 적용됩니다. 컨트롤의 Location 속성 값은 올바른 값으로 조정됩니다.

참고Label 컨트롤은 이 규칙의 예외입니다. 고정된 Label 컨트롤의 AutoSize 속성 값을 true로 설정하면 Label 컨트롤이 늘어나지 않습니다.
컨트롤의 MaximumSizeMinimumSize 속성은 AutoSize 속성 값에 관계없이 항상 적용됩니다. MaximumSizeMinimumSize 속성은 AutoSize 속성의 영향을 받지 않습니다.
기본적으로 설정되는 최소 크기는 없습니다. 즉, AutoSize에서 컨트롤이 줄어들도록 설정되고 컨트롤에 콘텐츠가 없는 경우 Size 속성 값은 0.0입니다. 이 경우 컨트롤은 특정 지점으로 줄어들고 쉽게 보이지 않습니다.
컨트롤이 GetPreferredSize 메서드를 구현하지 않는 경우 GetPreferredSize 메서드는 Size 속성에 할당된 마지막 값을 반환합니다. 즉, AutoSizetrue로 설정해도 영향을 주지 않습니다.
TableLayoutPanel 셀의 컨트롤은 MinimumSize에 도달할 때까지 항상 셀에 맞게 줄어듭니다. 이 크기는 최대 크기로 적용됩니다. 이는 셀이 AutoSize 행 또는 열의 일부인 경우가 아닙니다.

AutoSizeMode 속성

AutoSizeMode 속성은 기본 AutoSize 동작에 대한 보다 세분화된 컨트롤을 제공합니다. AutoSizeMode 속성은 컨트롤이 콘텐츠에 맞게 크기를 조정하는 방법을 지정합니다. 예를 들어 콘텐츠는 Button 컨트롤에 대한 텍스트이거나 컨테이너에 대한 자식 컨트롤일 수 있습니다.

다음 표에서는 AutoSizeMode 설정과 각 설정이 얻는 동작에 대한 설명을 보여줍니다.

AutoSizeMode 설정 동작
GrowAndShrink 이 컨트롤은 콘텐츠를 에워싸도록 확장되거나 축소됩니다.

MinimumSizeMaximumSize 값은 적용되지만, Size 속성의 현재 값은 무시됩니다.

이것은 AutoSize 속성이 있고 AutoSizeMode 속성이 없는 컨트롤과 동일한 동작입니다.
GrowOnly 이 컨트롤은 콘텐츠를 에워싸도록 필요한 만큼 확장되지만, Size 속성으로 지정된 값보다 작게는 축소되지 않습니다.

AutoSizeMode의 기본값입니다.

AutoSize 속성을 지원하는 컨트롤

다음 표에서 AutoSizeAutoSizeMode 속성을 지원하는 컨트롤을 나열합니다.

AutoSize 지원 컨트롤 형식
- AutoSize 속성이 지원됩니다.
- AutoSizeMode 속성이 없습니다.
CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox(TextBox base)

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

디자인 환경에서 자동 크기 조정

다음 표에서는 AutoSizeAutoSizeMode 속성의 값을 기반으로 디자인 타임에 컨트롤의 크기 조정 동작을 설명합니다.

SelectionRules 속성을 재정의하여 지정된 컨트롤이 사용자 크기 조정 가능한 상태인지 여부를 확인합니다. 다음 표에서 “cannot”은 Moveable만 의미하고, “can”은 AllSizeableMoveable을 의미합니다.

자동 크기 조정 설정 디자인 타임 크기 조정 제스처
- AutoSize = true
- AutoSizeMode 속성이 없습니다.
다음 컨트롤을 제외하고는 사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 없습니다.

- TextBox
- MaskedTextBox
- RichTextBox
- TrackBar
- AutoSize = true
- AutoSizeMode = GrowAndShrink
사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 없습니다.
- AutoSize = true
- AutoSizeMode = GrowOnly
사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 있습니다. Size 속성이 설정되면 사용자는 컨트롤의 크기만 늘릴 수 있습니다.
- AutoSize = false 또는 AutoSize 속성이 숨겨집니다. 사용자가 디자인 타임에 컨트롤의 크기를 조정할 수 있습니다.

참고

생산성을 최대화하기 위해 Visual Studio의 Windows Forms 디자이너는 Form 클래스의 AutoSize 속성을 숨깁니다. 디자인 타임에 양식은 실제 설정과 상관 없이 AutoSize 속성이 false로 설정된 것처럼 동작합니다. 런타임에는 특별한 숙박 시설이 없고 AutoSize 속성은 속성 설정으로 지정된 대로 적용됩니다.

참고 항목