Compartilhar via


Variedades de controles personalizados

Com o.NET Framework, você pode desenvolver e implementar novos controles. Você pode estender a funcionalidade do controle de usuário familiar controles existentes, bem como através de herança. Você também pode escrever controles personalizados, executam sua próprias pintura.

Decidir qual tipo de controle para criar pode ser confuso. Este tópico destaca as diferenças entre os vários tipos de controles a partir do qual você pode herdar e fornece informações sobre como escolher um determinado tipo de controle para o seu projeto.

ObservaçãoObservação

Para obter informações sobre a criação de um controle para usar em formulários da Web, consulte Desenvolvendo Controles Personalizados ASP.NET Server.

Classe base do controle

O Control classe é a classe base para todos os controles Windows Forms. Ele fornece a infra-estrutura necessária para a exibição visual em aplicativos Windows Forms.

O Control classe realiza as seguintes tarefas para fornecer uma exibição visual em aplicativos Windows Forms:

  • Expõe o identificador de janela.

  • Gerencia o roteamento de mensagens.

  • Fornece muitos outros eventos de interface de usuário e eventos de teclado e mouse.

  • Fornece recursos de layout avançado.

  • Contém muitas propriedades específicas para a exibição visual, como ForeColor, BackColor, Height, e Width.

  • Fornece a segurança e o suporte de segmentação necessário para um controle Windows Forms atuar como um controle do Microsoft ® ActiveX ®.

Como grande parte da infra-estrutura é fornecido pela classe base, é relativamente fácil desenvolver seus próprios controles Windows Forms.

Tipos de controles

Windows Forms oferece suporte a três tipos de controles definidos pelo usuário: composto, estendida, e personalizado. As seções a seguir descrevem cada tipo de controle e fornecem recomendações para escolher o tipo para usar em seus projetos.

Controles de composição

Um controle composto é uma coleção de controles do Windows Forms encapsulados em um contêiner comum. Esse tipo de controle, às vezes é chamado um o controle de usuário. Controles contidos são chamados de controles constituintes.

Um controle composto contém toda a funcionalidade inerente associada a cada um dos controles Windows Forms contidos e permite expor e vincular suas propriedades de forma seletiva. Um controle composto também fornece uma grande quantidade de teclado padrão funcionalidade sem qualquer esforço de desenvolvimento extra de sua parte.

Por exemplo, um controle composto poderia ser criado para exibir dados de endereço do cliente de um banco de dados. Esse controle poderia incluir um DataGridView controle para exibir os campos do banco de dados, um BindingSource para lidar com a vinculação a uma fonte de dados e um BindingNavigator o controle para percorrer os registros. Você pode seletivamente expor propriedades de vinculação de dados e pode empacotar e reutilizar todo o controle de aplicativo. Para obter um exemplo desse tipo de controle composto, consulte Como: Aplicar atributos de controles do Windows Forms.

Para criar um controle composto, derivam de UserControl classe. O UserControl classe base fornece roteamento de teclado para o filho controla e permite que os controles filho funcionar como um grupo. Para obter mais informações, consulte O desenvolvimento de um controle composto do Windows Forms.

Recomendação

Herdar de UserControl classe se:

  • Você deseja combinar a funcionalidade de vários controles do Windows Forms em uma única unidade reutilizável.

Controles estendidos

Você pode derivar um controle herdado a qualquer controle Windows Forms existente. Com essa abordagem, você pode reter toda a funcionalidade inerente de um controle Windows Forms e, em seguida, estender essa funcionalidade, adicionando propriedades personalizadas, métodos ou outros recursos. Com essa opção, pode substituir a lógica de pintura do controle base e, em seguida, estender sua interface de usuário alterando sua aparência.

Por exemplo, você pode criar um controle derivado de Button controle que controla quantas vezes um usuário clicou proprietário.

Em alguns controles, você também pode adicionar uma aparência personalizada para a interface gráfica do usuário do seu controle, substituindo o OnPaint o método da classe de base. Para um botão estendido que rastreia os cliques, você pode substituir o OnPaint método para chamar a implementação base do OnPainte em seguida, desenhe a contagem de clicar em um canto da Button área do cliente. do controle

Recomendação

Herde a partir de um controle Windows Forms se:

  • A maioria das funcionalidades que você precisa já é idêntico de um controle Windows Forms existente.

  • Você não precisa de uma interface gráfica de usuário personalizados ou para criar uma nova interface gráfica do usuário para um controle existente.

Controles personalizados.

Outra maneira de criar um controle é criá-lo substancialmente desde o início por herança de Control. O Control classe fornece toda a funcionalidade básica necessária por controles, incluindo o mouse e teclado para manipulação de eventos, mas nenhuma funcionalidade específica do controle ou uma interface gráfica.

Criando um controle, herdando o Control classe requer muito mais idéias e o esforço que herdam UserControl ou um controle Windows Forms existente. Porque uma grande quantidade de implementação é deixada para você, seu controle pode ter maior flexibilidade do que um controle composto ou estendido e você pode adaptar seu controle para atender às necessidades exatas.

Para implementar um controle personalizado, você deve escrever código para o OnPaint o código de evento do controle, bem como qualquer recurso específico você necessidade. Você também pode substituir o WndProc método e alça windows mensagens diretamente. Essa é a maneira mais eficiente para criar um controle, mas usar essa técnica de forma eficaz, você precisa estar familiarizado com o Microsoft Win32 ® API.

Um exemplo de um controle personalizado é um controle de relógio que duplica a aparência e comportamento de um relógio analógico. Pintura personalizada é invocada para fazer com que os ponteiros do relógio para mover-se em resposta a Tick eventos de interna Timer componente. Para obter mais informações, consulte Como: Desenvolver um controle de formulários do Windows simples.

Recomendação

Herdar de Control classe se:

  • Você deseja fornecer uma representação gráfica personalizada do seu controle.

  • Você precisa implementar a funcionalidade personalizada que não está disponível por meio de controles padrão.

Controles ActiveX

Embora a infra-estrutura do Windows Forms foi otimizada para controles de host do Windows Forms, você ainda pode usar os controles de ActiveX. Não há suporte para essa tarefa em Visual Studio. Para obter mais informações, consulte Como: Adicionar controles de ActiveX para Windows Forms.

Controles sem janelas

Suportam a tecnologias de ActiveX de Visual Basic o Microsoft ® 6.0and sem janelas controles. Não há suporte para controles sem janelas no Windows Forms.

Experiência de Design personalizado

Se você precisa implementar uma experiência personalizada de tempo de design, você pode criar seu próprio designer. Para controles de composição derivar sua classe personalizada de designer do ParentControlDesigner ou DocumentDesigner classes. Para controles personalizados e estendidas, derivar sua classe personalizada de designer da ControlDesigner classe.

Use o DesignerAttribute para associar o controle com seu criador. Para obter mais informações, consulte Estendendo suporte em tempo de design e Como: Criar um controle Windows Forms que tira proveito dos recursos de tempo de Design.

Consulte também

Tarefas

Como: Desenvolver um controle de formulários do Windows simples

Como: Criar um controle Windows Forms que tira proveito dos recursos de tempo de Design

Conceitos

O desenvolvimento de um controle composto do Windows Forms

Outros recursos

Desenvolvendo controles de formulários do Windows personalizada com o.NET Framework

Estendendo suporte em tempo de design