Variedades de controles personalizados

Com o .NET estrutura, você pode desenvolver e implementar novos controles.Você pode estender a funcionalidade do controle de usuário familiar controles existentes, bem sistema autônomo por meio de herança.Você também pode criar controles personalizados que executam seu próprios 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 tipo específico de controle para seu projeto.

Observaçã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 de controle

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

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

  • Expõe um 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çados.

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

  • Fornece segurança e threading suporte necessário para um controle Windows Forms atuar sistema autônomo 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: composição, estendido, and personalizado.As seções a seguir descrevem cada tipo de controle e fornecem recomendações para a escolha do tipo para usar em seus projetos.

Controles de composição

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

Um controle composto contém toda a funcionalidade inerente associada a cada um dos controles Windows Forms contidos e permite que você para expor e BIND suas propriedades seletivamente.Um controle composto também oferece uma grande quantidade de teclado padrão tratamento funcionalidade com nenhum esforço de desenvolvimento extra de sua parte.

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

Para criar um controle composto, derivam o UserControl classe. The UserControl classe base fornece roteamento de teclado para filho controla e permite que sistema autônomo controles do filho funcionar sistema autônomo um agrupar. Para obter mais informações, consulte Desenvolvimento de um controle composto do Windows Forms.

Recomendação

Herdar o UserControl classe se:

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

Controles estendidos

Você pode derivar um controle herdado a partir de 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, você pode substituir a lógica de pintura do controle base e estender sua interface de usuário alterando sua aparência.

Por exemplo, você pode criar um controle derivado o Button controle controla quantas vezes um usuário clicou-lo.

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

Recomendação

Herde de um controle Windows Forms se:

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

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

Controles personalizados.

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

A criação de um controle, herdam o Control classe requer muito mais idéias e o esforço que herda de UserControl ou um controle Windows Forms existente. Como uma grande implementação resta para você, seu controle pode ter maior flexibilidade do que um controle composto ou estendido e você pode adequar seu controle para atender às suas necessidades exatas.

Para implementar um controle personalizado, você deve escrever código para o OnPaint evento do controle, bem sistema autônomo qualquer código específico do recurso que você precisa. Você também pode substituir o WndProc método e o manipulador de mensagens de janelas diretamente. Essa é a maneira mais eficiente para criar um controle, mas para usar essa técnica com eficácia, você precisa estar familiarizado com a API do Microsoft Win32 ®.

Um exemplo de um controle personalizado é um controle de clock que duplica a aparência e comportamento de um relógio analógico.Pintura personalizada é invocada para fazer com que o nas mãos do relógio para mover 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 o Control classe se:

  • Você deseja fornecer uma representação gráfica personalizada de 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 Windows Forms de host, você ainda pode usar controles ActiveX.Há suporte para esta tarefa no Visual Studio.Para obter mais informações, consulte Como: Adicionar controles ActiveX ao Windows Forms.

Controles sem janelas

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

Experiência de design personalizado

Se você precisar implementar uma experiência de time de criação personalizada, você pode criar seu próprio designer.Para controles de composição, derivam sua classe personalizada de designer o ParentControlDesigner ou o DocumentDesigner classes. Para controles estendidos e personalizados, derivam sua classe personalizada de designer o ControlDesigner classe.

Use o DesignerAttribute para associar o controle seu designer. Para obter mais informações, consulte Estendendo suporte em tempo de design e Como: Criar um Controlarar Windows Forms que tem a vantagem dos recursos de design-time.

Consulte também

Tarefas

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

Como: Criar um Controlarar Windows Forms que tem a vantagem dos recursos de design-time

Conceitos

Desenvolvimento de um controle composto do Windows Forms

Outros recursos

Desenvolvimento personalizado de controles do Windows Forms com o .NET estrutura

Estendendo suporte em tempo de design