Compartilhar via


Como herdar de controles dos Windows Forms existentes

Se você quiser estender a funcionalidade de um controle existente, poderá criar um controle derivado de um controle existente por meio de herança. Ao herdar de um controle existente, você herda todas as funcionalidades e propriedades visuais desse controle. Por exemplo, se você estivesse criando um controle herdado do Button, seu novo controle teria a aparência e agiria exatamente como um controle padrão Button . Dessa forma, você poderia estender ou modificar a funcionalidade de seu novo controle por meio da implementação de métodos e propriedades personalizados. Em alguns controles, você também pode alterar a aparência visual do controle herdado substituindo seu OnPaint método.

Criar um controle herdado

  1. No Visual Studio, crie um novo projeto de aplicativo do Windows Forms.

  2. No menu Projeto, escolha Adicionar Novo Item.

    A caixa de diálogo Adicionar Novo Item aparecerá.

  3. Na caixa de diálogo Adicionar Novo Item, clique duas vezes em Controle personalizado.

    Um novo controle personalizado será adicionado ao projeto.

  4. Se você estiver usando:

    • Visual Basic, na parte superior do Gerenciador de Soluções, clique em Mostrar Todos os Arquivos. Expanda CustomControl1.vb e abra CustomControl1.Designer.vb no Editor de Código.
    • C#, abra CustomControl1.cs no Editor de códigos.
  5. Localize a declaração de classe, que herda de Control.

  6. Altere a classe base para o controle do qual você deseja herdar.

    Por exemplo, se você quiser herdar do , altere a declaração de Buttonclasse para o seguinte:

    Partial Class CustomControl1
        Inherits System.Windows.Forms.Button
    
    public partial class CustomControl1 : System.Windows.Forms.Button
    
  7. Se você estiver usando Visual Basic, salve e feche CustomControl1.Designer.vb. Abra CustomControl1.vb no Editor de Código.

  8. Implemente os métodos ou propriedades personalizados que o controle incorporará.

  9. Se você quiser modificar a aparência gráfica do seu controle, substitua o OnPaint método.

    Observação

    A substituição OnPaint não permitirá que você modifique a aparência de todos os controles. Esses controles que têm toda a sua pintura feita pelo Windows (por exemplo, ) nunca chamam seu OnPaint método e, portanto, TextBoxnunca usarão o código personalizado. Consulte a documentação da Ajuda para o controle específico que você deseja modificar para ver se o OnPaint método está disponível. Para obter uma lista de todos os controles do Windows Forms, consulte Controles a serem usados no Windows Forms. Se um controle não tiver OnPaint listado como um método de membro, você não poderá alterar sua aparência substituindo esse método. Para obter mais informações sobre pintura personalizada, consulte Pintura e renderização de controle personalizado.

    Protected Overrides Sub OnPaint(ByVal e As _
       System.Windows.Forms.PaintEventArgs)
       MyBase.OnPaint(e)
       ' Insert code to do custom painting.
       ' If you want to completely change the appearance of your control,
       ' do not call MyBase.OnPaint(e).
    End Sub
    
    protected override void OnPaint(PaintEventArgs pe)
    {
       base.OnPaint(pe);
       // Insert code to do custom painting.
       // If you want to completely change the appearance of your control,
       // do not call base.OnPaint(pe).
    }
    
  10. Salve e teste seu controle.

Confira também