Partilhar via


Visão geral da propriedade AutoSize

A propriedade AutoSize permite que um controle altere seu tamanho, se necessário, para obter o valor especificado pela propriedade PreferredSize. Ajuste o comportamento de dimensionamento para controles específicos definindo a propriedade AutoSizeMode.

Comportamento de AutoSize

Apenas alguns controles dão suporte à propriedade AutoSize. Além disso, alguns controles que dão suporte à propriedade AutoSize também dão suporte à propriedade AutoSizeMode.

A propriedade AutoSize produz um comportamento um pouco diferente, dependendo do tipo de controle específico e do valor da propriedade AutoSizeMode, se a propriedade existir. A tabela a seguir descreve os comportamentos que são sempre verdadeiros e fornece uma breve descrição de cada um:

Comportamento sempre verdadeiro Descrição
O redimensionamento automático é um recurso em tempo de execução. Isso significa que um controle nunca cresce ou é reduzido e, em seguida, não tem mais efeito.
Se um controle alterar o tamanho, o valor de sua propriedade Location sempre permanecerá constante. Quando o conteúdo de um controle faz com que ele cresça, o controle cresce para a direita e para baixo. Os controles não crescem para a esquerda.
As propriedades Dock e Anchor são respeitadas quando AutoSize é true. O valor da propriedade Location do controle é ajustado para o valor correto.

Observação O controle Label é a exceção a essa regra. Quando você define o valor da propriedade AutoSize de um controle Label ancorado para true, o controle Label não será expandido.
As propriedades MaximumSize e MinimumSize de um controle são sempre respeitadas, independentemente do valor de sua propriedade AutoSize. As propriedades MaximumSize e MinimumSize não são afetadas pela propriedade AutoSize.
Não há nenhum tamanho mínimo definido por padrão. Isso significa que, se um controle estiver definido para reduzir em AutoSize e não tiver conteúdo, o valor de sua propriedade Size será 0,0. Nesse caso, seu controle diminuirá para um ponto e não será facilmente visível.
Se um controle não implementar o método GetPreferredSize, o método GetPreferredSize retornará o último valor atribuído à propriedade Size. Isso significa que a configuração AutoSize para true não terá efeito.
Um controle em uma célula TableLayoutPanel sempre diminui para caber na célula até que seu MinimumSize seja atingido. Esse tamanho é imposto como um tamanho máximo. Esse não é o caso quando a célula faz parte de uma linha ou coluna de AutoSize.

Propriedade AutoSizeMode

A propriedade AutoSizeMode fornece um controle mais refinado sobre o comportamento de AutoSize padrão. A propriedade AutoSizeMode especifica como um controle se dimensiona para seu conteúdo. O conteúdo, por exemplo, pode ser o texto de um controle Button ou dos subcontroles de um contêiner.

A tabela a seguir mostra as configurações de AutoSizeMode e uma descrição do comportamento que cada configuração provoca.

Configuração de AutoSizeMode Comportamento
GrowAndShrink O controle cresce ou diminui para abranger seu conteúdo.

Os valores MinimumSize e MaximumSize são respeitados, mas o valor atual da propriedade Size é ignorado.

Esse é o mesmo comportamento dos controles com a propriedade AutoSize e sem a propriedade AutoSizeMode.
GrowOnly O controle se expande o quanto for necessário para acomodar seu conteúdo, mas não se reduzirá a menos do que o valor especificado por sua propriedade Size.

Esse é o valor padrão para AutoSizeMode.

Controles que dão suporte à propriedade AutoSize

A tabela a seguir lista os controles que dão suporte às propriedades AutoSize e AutoSizeMode.

Suporte para Ajuste Automático de Tamanho Tipo de controle
- AutoSize propriedade suportada.
- Nenhuma propriedade AutoSizeMode.
CheckBox

DomainUpDown

Label

LinkLabel

MaskedTextBox (TextBox base)

NumericUpDown

RadioButton

TextBox

TrackBar
- AutoSize propriedade com suporte.
Propriedade - AutoSizeMode com suporte.
Button

CheckedListBox

FlowLayoutPanel

Form

GroupBox

Panel

TableLayoutPanel
- Nenhuma propriedade AutoSize. CheckedListBox

ComboBox

DataGridView

DateTimePicker

ListBox

ListView

MaskedTextBox

MonthCalendar

ProgressBar

PropertyGrid

RichTextBox

SplitContainer

TabControl

TabPage

TreeView

WebBrowser

ScrollBar

AutoSize no Ambiente de Projeto

A tabela a seguir descreve o comportamento de dimensionamento de um controle em tempo de design, com base no valor de suas propriedades AutoSize e AutoSizeMode.

Substitua a propriedade SelectionRules para determinar se um determinado controle está em um estado redimensionável pelo usuário. Na tabela a seguir, "não pode" significa apenas Moveable, "pode" significa AllSizeable e Moveable.

Configurações de dimensionamento automático Gesto de dimensionamento no momento de design
- AutoSize = true
- Nenhuma propriedade AutoSizeMode.
O usuário não pode redimensionar o controle em tempo de design, exceto pelos seguintes controles:

- TextBox
- MaskedTextBox
- RichTextBox
- TrackBar
- AutoSize = true
- AutoSizeMode = GrowAndShrink
O usuário não pode redimensionar o controle em tempo de design.
- AutoSize = true
- AutoSizeMode = GrowOnly
O usuário pode redimensionar o controle em tempo de desenvolvimento. Quando a propriedade Size é definida, o usuário só pode aumentar o tamanho do controle.
A propriedade - AutoSize = falseou AutoSize está oculta. O usuário pode redimensionar o controle no momento do design.

Nota

Para maximizar a produtividade, o Designer de Formulários do Windows no Visual Studio sombreia a propriedade AutoSize da classe Form. Em tempo de design, o formulário se comporta como se a propriedade AutoSize estivesse definida como false, independentemente de sua configuração real. Durante o tempo de execução, não é feita nenhuma adaptação especial, e a propriedade AutoSize é aplicada conforme especificado pela configuração da propriedade.

Consulte também