Partilhar via


Limitações dos controles do Windows Forms em documentos do Office

Há algumas diferenças entre os controles do Windows Forms adicionados a documentos do Microsoft Office Word ou planilhas do Microsoft Office Excel e os controles do Windows Forms adicionados ao Windows Forms. Por exemplo, quando você adiciona um controle a um Button documento, propriedades como , Anchore TabIndex não se comportam como Dockesperado.

Muitas dessas diferenças são causadas pela maneira como os controles do Windows Forms são hospedados em documentos. Quando um controle do Windows Forms é adicionado a um documento, o tempo de execução do Visual Studio Tools for Office incorpora um controle ActiveX que hospeda o controle Windows Forms no documento. O controle Windows Forms não é incorporado diretamente no documento.

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

Limitações de métodos e propriedades de controles do Windows Forms

Há vários métodos e propriedades de controles do Windows Forms que não funcionam da mesma maneira em um documento como funcionariam em um formulário do Windows e, portanto, é recomendável que eles não sejam usados. Por exemplo, a definição de propriedades como Dock e Anchor afeta apenas a posição do controle em relação ao controle ActiveX do contêiner, em vez do documento. A seguir está uma lista de métodos sem suporte e propriedades de controles do Windows Forms para Word e Excel:

Você também não pode definir a propriedade ou Top de controles do Windows Forms que estão em linha com o Left texto em um documento do Word. Os controles do Windows Forms são adicionados em linha com o texto nos seguintes casos:

  • Você programaticamente adicionar um controle a um documento do Word e usar um método que especifica um intervalo para o local.

  • Adicionar um controle do Windows Forms a um documento do Word em tempo de design. Você pode alterar isso modificando o controle no designer.

Diferenças nos controles do Windows Forms em documentos do Office

Os controles do Windows Forms geralmente têm o mesmo comportamento em um documento do Office que em um Windows Form, mas existem algumas diferenças. A tabela a seguir descreve as diferenças que existem para controles do Windows Forms em documentos do Office.

Funcionalidade Diferença
Ordem de tabulação de controle Não é possível percorrer os controles colocados em uma planilha do Excel ou documento do Word.
Agrupamento de controle Você não pode usar um controle para conter outros controles em um GroupBox documento do Office. Quando você adiciona vários botões de opção diretamente ao documento, os botões de opção não são mutuamente exclusivos. Você pode escrever código para tornar os botões de opção mutuamente exclusivos; No entanto, a abordagem preferencial é adicionar os botões de opção a um controle de usuário e, em seguida, adicionar o controle de usuário ao documento. Para obter mais informações, consulte o Exemplo de controles do Word ou Exemplo de controles do Excel em Exemplos de desenvolvimento e instruções passo a passo do Office.
Tipo de controle Os controles do Windows Forms usados em documentos são encapsulados em uma classe fornecida pelo tempo de execução do Visual Studio Tools for Office que fornece aos controles funcionalidade adicional específica para a planilha do Excel ou documento do Word. Por exemplo, se você tiver um controle Button em uma planilha do Excel, certifique-se de especificar o tipo como Button em vez de Button ao referenciar ou converter o objeto.
Posição e tamanho do controle O tamanho e a posição do controle são determinados por propriedades que fazem parte do controle ActiveX do contêiner. As propriedades do controle ActiveX usam valores diferentes das propriedades equivalentes de um controle do Windows Forms. Quando você define as Toppropriedades , , Heightou Width de um controle, ele é medido em pontos, Leftem vez de pixels.
Posição de controle em documentos do Word Se você adicionar controles a um layout baseado em fluxo, lembre-se de que os controles fluirão com o conteúdo à medida que o conteúdo for alterado. Você não pode ancorar o controle a um parágrafo quando você arrastá-lo da caixa de ferramentas porque o controle é adicionado ao documento do Word em linha com o texto. Se você usar outro método para adicionar o controle, como clicar duas vezes no controle, o controle é inserido de acordo com a opção do Word que você definiu para inserir imagens.

Você não pode definir a propriedade ou Top de um controle que está alinhado com o Left texto.

Não é possível colocar controles em um cabeçalho ou rodapé ou em um subdocumento.
Eventos de controle Quando o controle é selecionado, ele gera eventos na seguinte ordem:

1. Enter
2. GotFocus

Quando o controle é desmarcado, ele gera eventos na seguinte ordem:

1. Leave
2. Validating
3. Validated
4. LostFocus
Dimensionamento de controle Quando você altera a configuração de zoom de um documento para algo diferente de 100%, os controles são desabilitados, embora pareçam ser dimensionados com o documento. Por exemplo, se você clicar em um botão quando o documento estiver com zoom de 130%, ele mostrará uma mensagem informando que o controle foi desabilitado até que o zoom seja definido como 100%. Os controles funcionarão corretamente quando você alterar o zoom para 100%.
Valores de propriedade de controle Embora as propriedades dos controles em um Windows Form são definidas como um valor inteiro, eles são definidos como um único para controles em um documento do Word. No Excel, os valores de propriedade dos controles são definidos como um duplo. Se a Height propriedade e Width de um controle em uma planilha exceder o tamanho da planilha ou tela, o valor será truncado.
Redimensionamento de controle Se você redimensionar um controle no documento usando uma das oito alças de dimensionamento, as novas dimensões de controle não serão refletidas na janela Propriedades até que o controle seja selecionado novamente.
Comportamento de controle Os controles em uma planilha do Excel podem se comportar de forma imprevisível quando a janela da planilha é dividida. Por exemplo, o acesso a um TextBox na planilha pode estar disponível apenas em uma das janelas.
Nomenclatura de controle Não é possível usar palavras reservadas para nomear controles. Por exemplo, se você adicionar um Button a uma planilha e alterar o nome para Sistema, ocorrerão erros ao criar o projeto.
Adicionando controles programaticamente Não use o construtor do controle para adicionar um controle ao documento em tempo de execução. Em vez disso, use os métodos auxiliares fornecidos pelo Visual Studio Tools for Office runtime . Por exemplo, use o AddButton método para adicionar um botão a uma planilha. Se você deseja adicionar um controle que não é suportado por esses métodos auxiliares, você pode usar o AddControl método. Para obter mais informações, consulte Adicionar controles a documentos do Office em tempo de execução.
Copiando controles Se você copiar um controle do Windows Forms e colá-lo em um documento em tempo de execução, um controle ActiveX de contêiner vazio será colado no documento. O controle Windows Forms não aparece no novo local e o código por trás do controle original não é copiado para o controle ActiveX do contêiner.

Limitações em projetos de nível de documento

Algumas limitações do uso de controles do Windows Forms em documentos são exclusivas para projetos de nível de documento.

Suporte de controle em tempo de projeto

Determinados controles do Windows Forms são removidos da caixa de ferramentas quando uma planilha do Excel ou documento do Word é aberto no designer do Visual Studio. Isso ocorre devido a limitações técnicas ou porque a funcionalidade já está disponível no Word ou Excel. Os projetos do Excel e do Word oferecem suporte a todos os controles do Windows Forms e outros componentes que aparecem na Caixa de Ferramentas quando o documento tem foco, e você também pode adicionar controles de terceiros a uma planilha ou documento.

Observação

Todos os controles são removidos da Caixa de Ferramentas quando um documento é protegido. Para obter informações sobre proteção de documentos, consulte Proteção de documentos em soluções de nível de documento.

Observação

Os controles de terceiros devem ter o ComVisibleAttribute atributo definido como true para serem usados em uma solução do Office.

Os seguintes controles e componentes não estão disponíveis na caixa de ferramentas:

Suporte para controles ActiveX herdados

Se você criar um projeto do Office em nível de documento que usa um documento existente do Word ou pasta de trabalho do Excel que contém controles ActiveX, a funcionalidade dos controles ActiveX não é perdida; no entanto, não há suporte para adicionar novos controles ActiveX aos seus documentos de dentro do Visual Studio. Por exemplo, se o documento do Word tiver um botão da caixa de ferramentas de controle que executa uma macro do Visual Basic for Applications (VBA), ele continuará a executar a macro depois que o documento tiver sido usado em um projeto do Office. No entanto, é recomendável remover controles ActiveX e macros VBA e substituí-los por controles do Windows Forms e código gerenciado.