Usar o Visual C# para fazer um objeto UserControl agir como um controle de tempo de design do contêiner

Este artigo fornece informações sobre como fazer um objeto UserControl agir como um contêiner de controle no momento do design depois de adicionar o objeto UserControl a um Formulário do Windows.

Versão original do produto: Visual C#
Número original do KB: 813450

Resumo

Este artigo refere-se ao namespace System.ComponentModelda Biblioteca de Classes do Microsoft .NET Framework .

Este artigo passo a passo descreve como fazer um objeto UserControl agir como um contêiner de controle em tempo de design depois de colocar o UserControl em um Formulário windows. Pode haver situações em que você deseja arrastar um controle para o UserControl. Para fazer isso, o UserControl deve atuar como um contêiner de controle.

Por padrão, um objeto UserControl só pode atuar como um contêiner de controle quando você cria o controle. Para tornar um host UserControl um controle constituinte depois de colocar o UserControl em um Formulário do Windows, você deve alterar o designer padrão do UserControl. Para implementar serviços de tempo de design para um componente, use a DesignerAttribute classe do System.ComponentModel namespace. O DesignerAttribute vem antes da declaração de classe. Inicialize o DesignerAttribute passando os designerTypeNamedesignerBaseType parâmetros e.

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

designerBaseType é o nome da classe base do designer. A classe usada para os serviços de tempo de design deve implementar a interface IDesigner.

Criar o UserControl como um contêiner de controle de tempo de design

  1. Crie um novo projeto da Biblioteca de Controle do Windows C# visual. Para fazer isso, siga estas etapas:

    1. Inicie o Visual Studio.
    2. No menu arquivo, aponte para novo e, em seguida, clique em Project.
    3. Em Tipos de Projeto, clique em Visual C#e clique em Windows Forms Biblioteca de Controleem Modelos.
  2. Nomeie o projeto ContainerUserControl. Por padrão, UserControl1.cs é criado.

  3. Em Gerenciador de Soluções, clique com o botão direito do mouse em UserControl1.cs e clique em Exibir Código.

  4. Adicione o seguinte código à seção declarações:

    using System.ComponentModel.Design;
    
  5. Aplique o System.ComponentModel.DesignerAttribute atributo ao controle da seguinte maneira:

    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
    public class UserControl1 : System.Windows.Forms.UserControl
    {
        ...
    }
    
  6. On the Build menu, click Build Solution.

Testar o UserControl

  1. Crie um novo projeto do Visual C#. Para fazer isso, siga estas etapas:

    1. Inicie o Visual Studio.
    2. No menu arquivo, aponte para novo e, em seguida, clique em Project.
    3. Em Tipos de Projeto, clique em Visual C#e clique em Windows Forms Aplicativo em Modelos. Por padrão, Form1.cs é criado.
  2. Adicione o controle UserControl1 à caixa de ferramentas.

    1. No menu Ferramentas , clique em Escolher Itens da caixa de ferramentas.
    2. Na guia Componentes .NET Framework, clique em Procurar.
    3. Na caixa Abrir Arquivo , localize a DLL criada quando você criou o controle UserControl.
  3. Arraste UserControl1 da caixa de ferramentas (em Windows Forms) para Form1.cs.

  4. Arraste um controle button da caixa de ferramentas para UserControl1.

Observação

O UserControl1 se comporta como contêiner de controle para o controle Button.

Referências

Para obter mais informações, consulte o site da Microsoft: Classe ParentControlDesigner.