Поделиться через


Свойство AutoSize

Обновлен: Ноябрь 2007

Свойство AutoSize позволяет при необходимости изменять размеры элемента управления в соответствии со значением свойства PreferredSize. Способ изменения размера для определенного элемента управления настраивается с помощью свойства AutoSizeMode.

Автоматическое изменение размеров

Свойство AutoSize поддерживается только некоторыми элементами управления. Кроме того, некоторые элементы управления, поддерживающие свойство AutoSize, также поддерживают свойство AutoSizeMode.

Свойство AutoSize может работать несколько по-разному в зависимости от типа элемента управления и значения свойства AutoSizeMode, если оно существует. В следующей таблице приводятся обязательные особенности данного свойства с кратким описанием каждого из них.

Обязательные особенности

Описание

Автоматическое изменение размеров — это функция времени выполнения.

Это значит, что она не может использоваться для увеличения или уменьшения размеров элемента управления без последующих изменений.

При изменении размеров элемента управления значение его свойства Location всегда остается постоянным.

Если размеры элемента управления изменяются в соответствии с содержимым, он растягивается вправо и вниз. Элементы управления не могут растягиваться влево.

Если свойство AutoSize имеет значение true, учитываются значения свойств Dock и Anchor.

Значение свойства Location элемента управления корректируется.

Note   Элемент управления Label является исключением из этого правила. При присвоении свойству AutoSize закрепленного элемента управления Label значения true элемент управления Label не растягивается.

Свойства MaximumSize и MinimumSize элемента управления учитываются вне зависимости от значения его свойства AutoSize.

Свойство AutoSize не оказывает влияния на значения свойств MaximumSize и MinimumSize.

Минимальный размер по умолчанию не устанавливается.

Это означает, что если в соответствии со свойством AutoSize размеры элемента управления должны уменьшаться и в настоящий момент в нем нет содержимого, свойство Size принимает значение 0,0. В этом случае размеры элемента уменьшатся до точки, и он станет невидимым.

Если в элементе управления не реализован метод 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 отсутствует.

Пользователь не может изменять размеры элемента управления во время разработки за исключением следующих элементов управления.

Пользователь не может изменять размеры элемента управления во время разработки.

Пользователь может изменять размеры элемента управления во время разработки. Если задано значение свойства Size, пользователь может только увеличивать размеры элемента управления.

Пользователь может изменять размеры элемента управления во время разработки.

ms171729.alert_note(ru-ru,VS.90).gifПримечание.

В целях повышения производительности конструктор Windows Forms скрывает свойство AutoSize класса Form. Во время разработки поведение формы соответствует значению свойства AutoSize = false вне зависимости от фактической настройки. Во время выполнения оптимизация не производится, и свойство AutoSize применяется в соответствии с фактическим значением.

См. также

Ссылки

AutoSize

PreferredSize

GetPreferredSize