Artigo: 813450 - Última revisão: quarta-feira, 16 de Julho de 2008 - Revisão: 3.1

Como criar um objecto UserControl actua como uma controlo de contentor de estruturação, utilizando o Visual C#

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Reduzir tudo

Sumário

Este artigo passo a passo descreve como efectuar um acto de objecto UserControl como um contentor de controlo no momento da estruturação depois de colocar UserControl um formulário do Windows. Poderão existir situações em que pretende arrastar um controlo para o UserControl . Para efectuar este procedimento, UserControl deve actuar como um contentor de controlo.

Descrição geral


Por predefinição, um objecto UserControl pode agir como um contentor de controlo apenas quando criar o controlo. Para tornar um UserControl hospedar um controlo constituintes depois de colocar UserControl um formulário do Windows, tem de alterar o estruturador de predefinição da UserControl . Para implementar serviços de tempo de estruturação para um componente, utilize a classe DesignerAttribute do espaço de nomes System.ComponentModel . DesignerAttribute é fornecido antes de declaração da classe. Inicialize DesignerAttribute transferindo designerTypeName e os parâmetros designerBaseType .

designerTypeName é o nome totalmente qualificado do tipo estruturador que fornece serviços de tempo de estruturação. Passe a combinação de System.Windows.Forms.Design.ParentControlDesigner e System.Design para o parâmetro designerTypeName . A classe ParentControlDesigner expande o comportamento de tempo de estruturação para um UserControl .

designerBaseType é o nome da classe base para o criador. A classe é utilizada para os serviços de tempo de design tem de implementar o IDesigner interface.


Criar o UserControl como um contentor de controlo de inserção

  1. Criar um novo Visual C# Windows biblioteca de controlos projecto. Para o fazer, siga estes passos:
    1. Inicie o Visual Studio.
    2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
    3. Em Project Types , clique em Visual C# e, em seguida, clique em Biblioteca de controlos formulários do Windows em modelos .

      Nota No Visual Studio 2003, clique em Visual C# Projects em Project Types e clique em Biblioteca de controlo do Windows em modelos .
  2. Nome do projecto ContainerUserControl . Por predefinição, é criado UserControl1.cs .
  3. No Solution Explorer, clique com o botão direito do rato UserControl1.cs e, em seguida, clique em Código .
  4. Adicione o código seguinte à secção de declarações:
    using System.ComponentModel.Design;
  5. Aplicar o atributo de System.ComponentModel.DesignerAttribute para o controlo da seguinte forma:
    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] 
    public class UserControl1 : System.Windows.Forms.UserControl
    {
    
          ...
    
    }
  6. No menu criar , clique em criar soluções .


Testar o UserControl

  1. Crie um novo projecto do Visual C#. Para o fazer, siga estes passos:
    1. Inicie o Visual Studio.
    2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
    3. Em Project Types , clique em Visual C# e, em seguida, clique em Windows Forms Application em modelos . Por predefinição, é criado Form1.cs .

      Nota No Visual Studio 2003, clique em Visual C# Projects em Project Types e, em seguida, clique em Biblioteca de controlo do Windows em modelos .
  2. Adicione o controlo UserControl1 à caixa de ferramentas.
    1. No menu Ferramentas , clique em Seleccionar itens de caixa de ferramentas .
    2. No separador .NET Framework Components , clique em Procurar .
    3. Na caixa Abrir um ficheiro , localize a DLL que foi criada quando criou o controlo UserControl .
  3. Arraste UserControl1 da caixa de ferramentas (em formulários do Windows) para Form1.cs .
  4. Arraste um controlo de botão da caixa de ferramentas para UserControl1 .
  5. Repare que UserControl1 funciona como contentor de controlo para o controlo de botão .

Referências

Para mais informações, consulte os seguintes Web sites da Microsoft:

Classe ParentControlDesigner
http://msdn.microsoft.com/en-us/library/system.windows.forms.design.parentcontroldesigner(VS.71).aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.design.parentcontroldesigner(VS.71).aspx)

Classe DesignerAttribute
http://msdn.microsoft.com/en-us/library/system.componentmodel.designerattribute(vs.71).aspx (http://msdn.microsoft.com/en-us/library/system.windows.forms.design.parentcontroldesigner(VS.71).aspx)



A informação contida neste artigo aplica-se a:
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
  • Microsoft Visual C# 2008 Express Edition
Palavras-chave: 
kbmt kbcontrol kbcontainer kbwindowsforms kbcompmodel kbhowtomaster KB813450 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 813450  (http://support.microsoft.com/kb/813450/en-us/ )