Share via


Desenvolvimento de controle personalizado

O .NET Compact Framework fornece controles Windows Forms que podem atender às necessidades para a maioria dos projetos de dispositivo.Esses controles são projetados para usar recursos restritos com eficiência e, portanto, não oferecem suporte para todas as propriedades, métodos e eventos herdados.Para satisfazer a ausência da funcionalidade, você pode derivar seus próprios controles personalizados a partir de controles comuns.Um controle personalizado pode ser criado, definindo um tipo public que herda a Control classe ou de um existente UserControl no seu assembly.

A personalização de controle mais simples é substituir um método em um controle comum.Por exemplo, você pode substituir o herdadasOnKeyPress método para um TextBox controle para fornecer código que restringe entrada para somente caracteres numéricos.

Observação:

O .NET Compact Framework não oferece suporte a todas as propriedades, métodos e eventos nos controles Windows Forms que são herdados a partir de seus controles base .

Você pode derivar a partir de controles comuns para fim de:

  • Substituir suas próprias propriedades, métodos e eventos em controles comuns.

  • Definir propriedades adicionais, métodos e eventos para um controle.

  • Criar um controle composto, tal sistema autônomo uma coleção de TextBox e Button controles.

  • Definir sistema autônomo um controle responde às ações do usuário, sistema autônomo um TextBox que aceita somente dados numéricos.

O .NET Compact Framework não está fornecendo no momento a funcionalidade para adicionar um controle personalizado para acesso em tempo de design.

Se você quiser elaborar mais personalização, você deve criar um controle personalizado derivado de Control classe. Você pode desenhar o controle substituindo o OnPaint método e criar controles sem interface do usuário para necessidades tais sistema autônomo um evento personalizado.

A base Control classe não sabe como um controle derivado deve ser desenhado e não fornece qualquer lógica de pintura no OnPaint método. The OnPaint método de Control apenas despacha o Paint evento para destinatários de evento registrados.

O .NET Compact estrutura chama o Paint e Resize eventos para somente o Form e Control classes.

Adicionando controles personalizados à caixa de ferramentas

Quando você cria um projeto para um controle personalizado no Microsoft Visual Studio 2005, o controle é adicionado automaticamente para o Caixa de ferramentas quando o aplicativo é compilado.Você pode criar um controle personalizado usando um dos seguintes tipos de projeto:

  • Biblioteca de controle

  • Biblioteca de Classe

  • Biblioteca de classe (1.0)

Para adicionar um controle personalizado à caixa de ferramentas, clique em Choose Toolbox Items no menu de ferramentas.Em seguida, você pode navegar para o assembly do controle.

Considerações e técnicas de controle personalizado

Por favor, perceba o seguinte ao criar controles personalizados:

  • O .NET Compact Framework não oferece suporte ao herdar valores de um controle pai, como é possível com alguns controles no NET Framework completo.Para contornar esse problema, você pode usar o OnParentChanged método para determinar quando o pai muda e toma a ação apropriada. O exemplo de código a seguir mostra a alteração da cor do plano de fundo quando o pai é alterado:

    protected override void OnParentChanged(EventArgs e)
    {
        base.OnParentChanged(e);
        this.BackColor = Parent.BackColor;
    }
    
    Protected Overrides Sub OnParentChanged(ByVal e As EventArgs) 
        MyBase.OnParentChanged(e)
        Me.BackColor = Parent.BackColor
    End Sub
    
  • O .NET Compact Framework não oferece suporte ao herdar a fonte de um controle pai.

  • Para detectar a localidade em um controle personalizado onde um evento "tocar-and-Isenção" ocorreu para exibir um menu de atalho, manipule oPopup evento e, em seguida, consulta o mouse corrente coordenadas usando o MousePosition propriedade.

  • Para alternar de controle personalizado para o controle anterior, use o seguinte código no KeyDown manipulador de eventos quando um Up chave é detectado.

    this.Parent.Controls(
        this.Parent.GetChildIndex(customcontrol) - 1).Focus()
    
    Me.Parent.Controls( _
        Me.Parent.GetChildIndex(customcontrol) - 1).Focus
    

Tópicos Como relacionados

Os tópicos Como a seguir mostram como usar controles personalizados para obter funcionalidade estendida:

Como: Criar um evento de clicar duplo personalizado

Como: Criar um controle de botão de imagem personalizado

Como: Exibir um preenchimento gradual

Como: Criar uma caixa de texto numérica

Como: Criar um desenhada proprietário lista caixa

Como: Criar funcionalidade AoEntrar

Como: Sumário do formulário de rolar

Como: classificar ListView Items

Como: Subclasse a TreeView by Using nativo Callbacks

Como: Um botão by Using nativo Callbacks subclasse

Consulte também

Conceitos

Subclassificação dos controles com um procedimento de janela gerenciado

Outros recursos

Controles Windows Forms no .NET Windows Compact Framework