Partilhar via


Redimensionar controles dentro das células da planilha

Quando você redimensiona colunas ou linhas em uma planilha, todos os controles de host dentro das células são redimensionados automaticamente para a altura ou largura da célula que foi redimensionada. Os controles do Windows Forms não são redimensionados automaticamente por padrão.

Aplica-se a: As informações neste tópico se aplicam a projetos de nível de documento para Excel. Para obter mais informações, consulte Recursos disponíveis por aplicativo e tipo de projeto do Office.

Se você adicionar os controles em tempo de design, deverá definir opções de posicionamento para cada controle.

Se você adicionar um controle do Windows Forms programaticamente e fornecer um argumento de intervalo, o controle será redimensionado automaticamente quando uma célula dentro do intervalo for redimensionada. Para obter mais informações, consulte Adicionar controles a documentos do Office em tempo de execução.

Redimensionar controles em tempo de design

Para fazer com que os controles sejam redimensionados com células em tempo de design

  1. Na caixa de ferramentas, arraste um controle Windows Forms para uma planilha.

  2. Clique com o botão direito do mouse no controle e, em seguida, clique em Formatar controle .

  3. Na caixa de diálogo Formatar Controle, clique na guia Propriedades.

  4. Em Posicionamento do Objeto, selecione a opção Mover e dimensionar com células e clique em OK.

    Quando você redimensiona a célula que contém o controle, o controle é redimensionado para se ajustar à célula.

Redimensionar controles em tempo de execução

Se você adicionar um controle do Windows Forms em tempo de execução e passar um Range como o local para o controle, o controle será redimensionado automaticamente quando a célula da planilha que contém o intervalo for redimensionada.

Para fazer com que os controles sejam redimensionados com células em tempo de execução

  1. Adicione um controle ao intervalo A1.

    Microsoft.Office.Tools.Excel.Controls.Button control1 =
        this.Controls.AddButton(this.Range["A1"], "control1");
    

    Quando você redimensiona a célula que contém o controle, o controle é redimensionado para se ajustar à célula.

Redefinir o posicionamento do controle

Você pode redefinir o posicionamento e o redimensionamento do controle definindo a Placement propriedade para um dos seguintes XlPlacement valores:

Para alterar o comportamento de um controle para que ele não seja redimensionado ou movido com a célula

  1. Chame a propriedade placement do controle e defina o valor como xlFreeFloating.

    control1.Placement = Microsoft.Office.Interop.Excel.XlPlacement.xlFreeFloating;