Compartilhar via


Como encaixar e ancorar controles (Windows Forms .NET)

Se você estiver criando um formulário que o usuário possa redimensionar em tempo de execução, os controles no formulário deverão ser redimensionados e reposicionados corretamente. Os controles têm duas propriedades que ajudam no posicionamento e no dimensionamento automáticos, quando o formulário muda de tamanho.

Importante

A documentação do Guia da Área de Trabalho para .NET 7 e .NET 6 está em construção.

  • Control.Dock

    Os controles encaixados preenchem as bordas do contêiner do controle, seja o formulário ou um controle de contêiner. Por exemplo, o Windows Explorer encaixa seu controle no lado esquerdo da janela e seu TreeViewListView controle no lado direito da janela. O modo de encaixe pode ser qualquer lado do contêiner do controle ou definido para preencher o espaço restante do contêiner.

    A windows form demonstrating the different dock modes for a control

    Os controles são encaixados na ordem z inversa e a propriedade interage com a DockAutoSize propriedade. Para obter mais informações, consulte Dimensionamento automático.

  • Control.Anchor

    Quando a forma de um controle ancorado é redimensionada, o controle mantém a distância entre o controle e as posições de ancoragem. Por exemplo, se você tiver um TextBox controle ancorado nas bordas esquerda, direita e inferior do formulário, à medida que o formulário for redimensionado, o TextBox controle será redimensionado horizontalmente para que mantenha a mesma distância dos lados direito e esquerdo do formulário. O controle também se posiciona verticalmente para que sua localização seja sempre a mesma distância da borda inferior do formulário. Se um controle não estiver ancorado e o formulário for redimensionado, a posição do controle em relação às bordas do formulário será alterada.

    A Windows form demonstrating the different anchor modes for a control

Para obter mais informações, consulte Posição e layout de controles.

Encaixar um controle

Um controle é encaixado definindo sua Dock propriedade.

Observação

Controles herdados devem ser Protected para poderem ser encaixados. Para alterar o nível de acesso de um controle, defina sua propriedade Modificador na janela Propriedades .

Usar o designer

Use a janela Propriedades do designer do Visual Studio para definir o modo de encaixe de um controle.

  1. Selecione o controle no designer.

  2. Na janela Propriedades, selecione a seta à direita da propriedade Dock.

    Visual Studio Properties pane for .NET Windows Forms with Dock property shown.

  3. Selecione o botão que representa a borda do contêiner onde você deseja encaixar o controle. Para preencher o conteúdo do formulário ou controle de contêiner do controle, pressione a caixa central. Pressione (nenhum) para desativar o encaixe.

    Visual Studio Properties pane for .NET Windows Forms with Dock property expanded.

O controle é redimensionado automaticamente para ajustar os limites da borda encaixada.

Definir Dock programaticamente

  1. Defina a Dock propriedade em um controle. Neste exemplo, um botão é encaixado no lado direito de seu contêiner:

    button1.Dock = DockStyle.Right;
    
    button1.Dock = DockStyle.Right
    

Ancorar um controle

Um controle é ancorado a uma borda definindo sua Anchor propriedade para um ou mais valores.

Observação

Certos controles, como o ComboBox controle, têm um limite para sua altura. Ancorar o controle na parte inferior do formulário ou contêiner não pode forçar o controle a exceder o limite de altura.

Controles herdados devem ser Protected para serem ancorados. Para alterar o nível de acesso de um controle, defina sua propriedade Modifiers na janela Propriedades.

Usar o designer

Use a janela Propriedades do designer do Visual Studio para definir as bordas ancoradas de um controle.

  1. Selecione o controle no designer.

  2. Na janela Propriedades, selecione a seta à direita da propriedade Anchor.

    Visual Studio Properties pane for .NET Windows Forms with Anchor property shown.

  3. Para definir ou desdefinir uma âncora, selecione o braço superior, esquerdo, direito ou inferior da cruz.

    Visual Studio Properties pane for .NET Windows Forms with Anchor property expanded.

Definir âncora programaticamente

  1. Defina a Anchor propriedade em um controle. Neste exemplo, um botão é ancorado nos lados direito e inferior de seu contêiner:

    button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
    
    button1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
    

Confira também