Controles com Built-in proprietário-desenho suporte
Desenho proprietário na Windows Forms, que é também conhecido sistema autônomo desenho personalizado, é uma técnica para alterar a aparência visual de certos controles.
Observação: |
---|
A palavra "controle" neste tópico é usada para significar classes que derivam de um Control ou Component. |
Normalmente, Windows manipula pintura automaticamente usando sistema autônomo configurações de propriedade, sistema autônomo BackColor para determinar a aparência de um controle. Com o desenho proprietário, você têm sobre o processo de pintura, alterando elementos de aparência que não estão disponível usando propriedades.Por exemplo, muitos controles que permitem que você conjunto a cor do texto que é exibido, mas você está limitado a uma única cor.Desenho proprietário lhe permite fazer coisas como exibir parte do texto em preto e parte em vermelho.
Na prática, o desenho proprietário é semelhante ao desenho de elementos gráficos em um formulário.Por exemplo, você pode usar métodos gráficos em um manipulador de formulário Paint evento para emular um ListBox controle, mas você teria de escrever seu próprio código para lidar com toda a interação de usuário. Com o desenho proprietário, o controle usa seu código para desenhar seu Sumário, mas caso contrário, retém todos os seus recursos intrínsecos.Você pode usar métodos gráficos para desenhar cada item no controle ou para personalizar alguns aspectos de cada item enquanto você usa a aparência padrão para outros aspectos de cada item.
Desenho proprietário in Windows Forms Controls
Para realizar em controles que dão suporte a ele de desenho proprietário, você normalmente irá conjunto uma propriedade e lidar com um ou mais eventos.
A maioria dos controles que suportam desenho proprietário tem um OwnerDraw ou DrawMode propriedade que indica se o controle irá disparar relacionados seu desenho evento ou evento s quando ela pinta propriamente dito.
Controles que não têm um OwnerDraw ou DrawMode propriedade incluir a DataGridView controle, que fornece o desenho eventos que ocorrem automaticamente, e o ToolStrip controle, que é desenhado usando uma classe de renderização externo tem seus próprios eventos relacionados ao desenho.
Há muitos tipos diferentes de eventos de desenho, mas ocorre um evento típico de desenho para desenhar um item único em um controle.O manipulador de eventos recebe um EventArgs objeto que contém informações sobre o item que está sendo desenhado e ferramentas você pode usar para desenhá-la. Por exemplo, este objeto normalmente contém o número de índice do item na sua coleção pai, um Rectangle indica que o item exibe limites e um Graphics objeto para chamar métodos de pintura. Alguns eventos, a EventArgs objeto fornece informações adicionais sobre o item e métodos que você pode telefonar para pintar alguns aspectos do item por padrão, sistema autônomo o plano de fundo ou um retângulo de foco.
Para criar um controle reutilizável que contém as personalizações desenhados pelo proprietário, crie uma nova classe que deriva de uma classe de controle que ofereça suporte a desenho proprietário.Em vez de manipulação de eventos de desenho, inclua seu código de desenho proprietário no substituições para o apropriado OnEventName método ou métodos na nova classe.Certifique-se de que você chamar a classe base OnEventName método ou métodos nesse caso, de modo que os usuários do seu controle podem manipular eventos de desenho proprietário e fornecer personalização adicional.
Seguir Windows Forms controles suporte desenho proprietário em todas as versões do .NET estrutura:
MenuItem (usado por MainMenu e ContextMenu)
Os seguintes controles oferecem suporte a desenho proprietário somente na .NET Framework versão 2,0:
Os seguintes controles suportam desenho proprietário e são novos no .NET Framework versão 2,0:
As seções a seguir fornecem detalhes adicionais para cada um desses controles.
Controles ComboBox e ListBox
The ListBox e ComboBox controles permitem desenhar itens individuais no controle de tudo em um dimensionar ou em vários tamanhos.
Observação: |
---|
Embora o CheckedListBox controle é derivado de ListBox controle, ele não oferece suporte de desenho proprietário. |
Para desenhar cada item do mesmo dimensionar conjunto o DrawMode propriedade para OwnerDrawFixed e lidar com o DrawItem evento.
Para desenhar cada item usando um dimensionar diferente, conjunto o DrawMode propriedade para OwnerDrawVariable e lidar com ambos os MeasureItem e DrawItem eventos. The MeasureItem evento permite indicar o dimensionar de um item antes da DrawItem evento ocorre para esse item.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos:
Componente MenuItem
The MenuItem componente representa um item único de menu em um MainMenu ou ContextMenu componente.
Para desenhar um MenuItem, conjunto seu OwnerDraw propriedade para true e lidar com seu DrawItem evento. Para personalizar o dimensionar do item de menu antes do DrawItem evento ocorrer, manipular o item MeasureItem evento.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos de referência:
Controle do TabControl
The TabControl controle permite que você desenhar guias individuais no controle. Desenho proprietário afeta apenas as guias; o TabPage Sumário não é afetados.
Para desenhar cada guia em um TabControl, conjunto o DrawMode propriedade para OwnerDrawFixed e lidar com o DrawItem evento. Esse evento ocorre uma vez para cada guia somente quando a guia estiver visível no controle.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos de referência:
Componente dica de ferramenta
The ToolTip componente permite que você desenhar dica de ferramenta inteira quando ela é exibida.
Para desenhar um ToolTip, conjunto seu OwnerDraw propriedade para true e lidar com seu Draw evento. Para personalizar o dimensionar do ToolTip antes da Draw evento ocorre, lidar com o Popup conjunto de eventos e o ToolTipSize propriedade no manipulador de eventos.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos de referência:
Controle ListView
The ListView controle permite que você desenhar itens individuais, subitens e cabeçalhos de colunas no controle.
Para ativar o controle de desenho proprietário conjunto o OwnerDraw propriedade para true.
Para desenhar cada item no controle, manipule o DrawItem evento.
Para desenhar cada cabeçalho de coluna ou de subitem no controle quando o View propriedade é conjunto para Details, lidar com o DrawSubItem e DrawColumnHeader eventos.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos de referência:
Controle TreeView
The TreeView controle permite que você desenhar nós individuais no controle.
Para desenhar apenas o texto exibido em cada nó conjunto o DrawMode propriedade para OwnerDrawText e lidar com o DrawNode evento para desenhar o texto.
Para desenhar todos sistema autônomo elementos de cada nó, defina o DrawMode propriedade para OwnerDrawAll e lidar com o DrawNode evento para desenhar qualquer elementos necessários, sistema autônomo texto, ícones, caixas de seleção, adição e subtração sinais e linhas que conectam sistema autônomo nós.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos de referência:
Controle DataGridView
The DataGridView controle permite que você desenhar células individuais e linhas no controle.
Para desenhar células individuais, manipule o CellPainting evento.
Para desenhar linhas individuais ou elementos de linhas, lidar com um ou ambos o RowPrePaint e RowPostPaint eventos. The RowPrePaint evento ocorre antes das células em uma linha são pintadas e o RowPostPaint evento ocorre depois que as células são pintadas. Você pode manipular eventos e o CellPainting evento para pintar o plano de fundo da linha, células individuais e primeiro plano da linha separadamente, ou você pode fornecer personalizações específicas, onde você precisa deles e use a exibição padrão para outros elementos da linha.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos:
Como: Personalizar a aparência de células em Windows Forms DataGridView controle
Como: Personalizar a aparência de linhas em controle DataGridView do Windows Forms
Controle ToolStrip
ToolStrip e controles derivados permitem que você personalizar qualquer aspecto de sua aparência.
Para fornecer renderização personalizado para ToolStrip conjunto de controles, o Renderer propriedade de um ToolStrip, ToolStripManager, ToolStripPanel, ou ToolStripContentPanel para um ToolStripRenderer objetos e lidar com um ou mais dos muitos eventos desenho fornecidos pela ToolStripRenderer classe. Como alternativa, conjunto um Renderer propriedade a uma instância de sua própria classe derivada de ToolStripRenderer, ToolStripProfessionalRenderer, ou ToolStripSystemRenderer que implementa ou substitui específico OnEventName métodos.
Para obter mais informações, incluindo exemplos de código, consulte os seguintes tópicos: