Compartilhar via


Como encaixar e ancorar controles

Se você estiver criando um formulário que o usuário pode redimensionar em tempo de execução, os controles em seu formulário deverão redimensionar e reposicionar corretamente. Os controles têm duas propriedades que ajudam com o posicionamento automático e o dimensionamento, quando o formulário muda de tamanho.

  • Control.Dock

    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 TreeView no lado esquerdo da janela e seu controle ListView para o 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.

    Um formulário de janela demonstrando os diferentes modos de encaixe para um controle

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

  • Control.Anchor

    Quando um formulário com controle ancorado é redimensionado, o controle mantém a distância entre ele e seus pontos de ancoragem. Por exemplo, se você tiver um controle TextBox ancorado nas bordas esquerda, direita e inferior do formulário, conforme o formulário for redimensionado, o controle TextBox será redimensionado horizontalmente para manter a mesma distância dos lados direito e esquerdo do formulário. O controle também se posiciona verticalmente para que seu local 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.

    um formulário do Windows demonstrando os diferentes modos de ancoragem para um controle

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

Encaixar um controle

Um controle é encaixado definindo a propriedade Dock dele.

Observação

Controles herdados precisam ser Protected para poderem ser encaixados. Para alterar o nível de acesso de um controle, defina a propriedade Modificador dele 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 na ferramenta de design.

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

    Painel de Propriedades do Visual Studio para .NET Windows Forms com a propriedade Encaixar mostrada.

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

    Painel de Propriedades do Visual Studio para .NET Windows Forms com a propriedade Encaixar expandida.

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

Definir o Dock programaticamente

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

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

Ancorar um controle

Um controle é ancorado em uma borda definindo sua propriedade Anchor como um ou mais valores.

Observação

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

Controles herdados precisam ser Protected para serem ancorados. Para alterar o nível de acesso de um controle, defina a propriedade Modifiers dele 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 na ferramenta de design.

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

    Painel de Propriedades do Visual Studio para .NET Windows Forms com a propriedade Ancorar mostrada.

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

    Painel de Propriedades do Visual Studio para .NET Windows Forms com a propriedade Ancorar expandida.

Definir Ancorar programaticamente

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

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

Consulte também