Compartilhar via


Visão geral dos controles do Windows Forms nos documentos do Office

Os controles do Windows Forms são objetos com os quais os usuários podem interagir para inserir ou manipular dados. Em projetos de nível de documento para o Microsoft Office Excel e o Microsoft Office Word, você pode adicionar controles do Windows Forms ao documento ou pasta de trabalho em seu projeto em tempo de design ou adicionar programaticamente esses controles em tempo de execução. Você pode adicionar esses controles programaticamente a qualquer documento ou planilha aberto em tempo de execução em um Suplemento VSTO para Excel ou Word.

Para obter mais informações, consulte Como adicionar controles do Windows Forms a documentos do Office.

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 Os recursos disponíveis pelo aplicativo do Office e pelo tipo de projeto.

Usar controles do Windows Forms

Você pode adicionar controles do Windows Forms a documentos e a elementos de interface do usuário personalizáveis, incluindo painéis de ações, painéis de tarefas personalizados e Windows Forms. Os controles do Windows Forms geralmente têm o mesmo comportamento em documentos que nesses outros elementos de interface do usuário, mas algumas diferenças existem. Para obter informações, consulte Limitações de controles do Windows Forms em documentos do Office.

A decisão de adicionar controles do Windows Forms a um documento ou a algum outro elemento de interface do usuário depende de vários fatores. Ao projetar a interface do usuário da sua solução, considere os usos dos controles do Windows Forms, conforme descrito na tabela a seguir.

Em um documento.

  • Quando você quiser exibir os controles 100% do tempo.

  • Quando você quiser que os usuários insiram dados diretamente no documento, por exemplo, em documentos baseados em formulários em que a superfície de edição está bloqueada.

  • Quando você quiser que os controles sejam exibidos de acordo com os dados no documento. Por exemplo, se você estiver adicionando botões a cada linha de um objeto de lista, desejará que eles estejam de acordo com cada item de lista.

No painel ações ou em um painel de tarefas personalizado.

  • Quando você quiser fornecer informações contextuais ao usuário.

  • Quando você quiser que apenas os resultados apareçam no documento, e não os dados e controles de consulta.

  • Quando você quiser garantir que os elementos de controle não sejam impressos junto ao documento.

  • Quando você quiser garantir que os controles não interfiram na exibição do documento.

Em um Formulário do Windows.

  • Quando você quiser controlar o tamanho da UI.

  • Quando você quiser impedir que os usuários ocultem ou excluam os controles.

  • Quando você quiser obter a entrada do usuário e impedir que o usuário faça qualquer coisa no documento até que a entrada seja recebida.

Adicionar controles do Windows Forms programaticamente

Você pode adicionar controles do Windows Forms a documentos do Word e planilhas do Excel em tempo de execução. O runtime das Ferramentas do Visual Studio para Office fornece métodos auxiliares para adicionar os controles mais comuns do Windows Forms. Esses métodos auxiliares permitem que você adicione rapidamente controles ao documento do Office e acesse a funcionalidade de controle combinada do Windows Forms e a funcionalidade relacionada ao Office desses controles.

Para obter mais informações, consulte Adicionar controles aos documentos do Office em tempo de execução.

Usar controles do Windows Forms em projetos de nível de documento

Alguns aspectos do uso de controles do Windows Forms em documentos são exclusivos para projetos de nível de documento, que permitem projetar a interface do usuário do documento usando o designer do Visual Studio.

Criar controles de usuário personalizados

Você pode adicionar um controle de usuário ao seu projeto e adicioná-lo à Caixa de Ferramentas. Em seguida, você pode arrastar o controle do usuário diretamente para o documento da mesma forma que adicionaria um controle do Windows Forms ao seu documento. Há algumas coisas a serem pensadas ao criar controles de usuário:

  • Não crie um controle de usuário lacrado . Quando você arrasta o controle para o documento, o Visual Studio gera uma classe wrapper derivada do controle de usuário para estendê-lo e dar suporte ao seu uso no documento. Se o controle de usuário estiver lacrado, o Visual Studio não poderá gerar a classe wrapper.

  • Os controles de usuário devem ter o ComVisibleAttribute atributo definido como true. Os controles de usuário criados dentro de um projeto do Office têm esse atributo definido como true por padrão, mas os controles de usuário que fazem parte de projetos externos podem não ter esse atributo definido como true.

  • Depois de adicionar um controle de usuário ao documento, não renomeie ou exclua a UserControl classe do projeto. Se você precisar alterar o nome de um controle de usuário, primeiro exclua-o do documento e, em seguida, adicione-o novamente depois que o nome tiver sido alterado.

Organizar controles em tempo de desenvolvimento

Se você adicionar vários controles aos documentos do Word e do Excel em tempo de design, poderá definir rapidamente o alinhamento de todos os controles selecionados usando as barras de ferramentas do Microsoft Office Word e do Microsoft Office Excel no Visual Studio. Essas barras de ferramentas só estão disponíveis quando um documento ou planilha está aberto no designer.

Ao selecionar vários controles no designer, você pode usar os seguintes botões nestas barras de ferramentas para organizar os controles:

  • Alinhar à esquerda

  • Alinhar Centros

  • Alinhar Direitos

  • Alinhar Topos

  • Alinhar Centros

  • Alinhar Fundo

  • Tornar o espaçamento horizontal igual

  • Tornar o espaçamento vertical igual

Observação

Em projetos do Word, esses botões só serão habilitados se os controles selecionados não estiverem alinhados com o texto. Por padrão, os controles que você adiciona ao documento em tempo de design estão alinhados com o texto.

Impedir que dados antigos apareçam em pastas de trabalho do Excel durante o carregamento

Quando você adiciona controles do Windows Forms a documentos ou planilhas em tempo de design, os controles permanecem no documento quando o usuário fecha o documento. Os controles adicionados em tempo de design também são chamados de controles estáticos.

Quando uma pasta de trabalho do Excel que contém controles estáticos é aberta, a pasta de trabalho exibe um bitmap do controle em um controle ActiveX até que o código de personalização seja executado e carregue o controle real. O Excel cria esse bitmap e o armazena na pasta de trabalho sempre que a pasta de trabalho é salva. O bitmap mostra o controle como parecia na última vez em que a pasta de trabalho foi salva, incluindo todos os dados que o controle estava exibindo. Para obter mais informações sobre o controle ActiveX que contém controles e bitmaps do Windows Forms, consulte Limitações de controles do Windows Forms em documentos do Office.

Em determinadas condições, o código não é carregado e somente o bitmap é exibido, como quando o usuário abre a pasta de trabalho no modo de design. Além disso, se o usuário abrir a pasta de trabalho em um computador que não tenha as Ferramentas do Visual Studio para o Runtime do Office instaladas, a personalização não poderá ser executada para carregar os controles e, portanto, apenas o bitmap do controle ficará visível. Você sempre deve remover informações pessoais de controles em pastas de trabalho antes de salvar a pasta de trabalho e enviá-la para outro usuário para garantir que suas informações pessoais não sejam divulgadas acidentalmente.

Corresponder o tamanho do controle ao tamanho da célula em uma planilha do Excel

Você pode definir o controle a ser redimensionado automaticamente quando o tamanho da célula pai for alterado. Para obter mais informações, consulte Como redimensionar controles em células de planilha.

Adicionar componentes compartilhados por todas as planilhas

Você pode adicionar componentes que deseja compartilhar entre todas as planilhas, como uma DataSet, ao Designer de Pasta de Trabalho em vez de às planilhas. O componente será exibido na bandeja do componente.

Fórmula para inserir controles em uma planilha do Excel

Ao selecionar um controle no Excel, você verá =EMBED("WinForms.Control.Host"") na Barra de Fórmulas. Esse texto é necessário e não deve ser excluído.

Estilo de layout de controles em um documento do Word

Quando você adiciona um controle ao documento do Word em um projeto no nível do documento usando o designer do Visual Studio, o controle é adicionado de acordo com o texto. Para alterar o estilo de layout do controle, clique com o botão direito do mouse no controle e clique em Formatar Controle. Selecione um estilo de encapsulamento na página Layout da caixa de diálogo Formatar Objeto .

Ao adicionar um controle a um documento do Word em tempo de execução, você pode especificar o estilo de layout do novo controle usando diferentes Add< sobrecargas de método de classe> de controle da ControlCollection classe:

  • Para adicionar o controle em linha com o texto, use uma sobrecarga que aceita um Range que especifica a localização do controle.

  • Para adicionar o controle como uma forma flutuante, use uma sobrecarga que aceite as coordenadas de posição esquerda e superior do controle.

    Para obter mais informações, consulte Adicionar controles aos documentos do Office em tempo de execução.

    Se você abrir um modelo do Word no designer do Visual Studio, os controles não embutidos no modelo poderão não estar visíveis porque o Visual Studio abrirá o modelo no modo de exibição Normal . Para exibir os controles, altere o modo de exibição para Layout de Impressão.

Controles fora do corpo principal do documento

Não há suporte para controles do Windows Forms dentro de um cabeçalho ou rodapé ou dentro de um subdocumento.

Adicionar componentes em tempo de design

Determinados controles ou componentes não estão visíveis no documento e, em vez disso, são exibidos em uma bandeja de componentes. O Visual Studio fornece uma bandeja de componentes para cada janela do documento. A bandeja de componentes será exibida na tela somente se houver componentes no documento.