Compartilhar via


Definindo uma propriedade em controles Windows Forms

Para obter uma visão geral de propriedades, consulte Visão geral sobre propriedades. Há algumas considerações importantes ao definir uma propriedade:

  • Você deve aplicar atributos para as propriedades que você definir.Atributos especificam como o designer deve exibir uma propriedade.Para obter detalhes, consulte:Atributos de tempo de design para componentes.

  • Se a alteração da propriedade afeta a exibição visual do controle, entre em contato com o Invalidate método (que herda o controle de Control) da set acessador. Invalidate por sua vez chama a OnPaint método redesenha o controle. Várias chamadas para Invalidate resultar em uma única telefonar para OnPaint Para maior eficiência.

  • Biblioteca de classes do .NET estrutura fornece conversores de tipo para tipos de dados comuns, sistema autônomo números inteiros, números Decimal, valores booliano e outros.A finalidade de um conversor de tipos é geralmente fornecer conversão de seqüência de caracteres-valor (de dados da seqüência de caracteres em outros tipos de dados).Tipos de dados comuns estão associados com conversores de tipo de padrão converter valores em seqüências de caracteres e seqüências de caracteres para os tipos de dados apropriado.Se você definir uma propriedade que é um personalizado (isto é, fora do padrão) tipo de dados, você terá que aplicar um atributo que especifica o conversor de tipo para associar essa propriedade.Você também pode usar um atributo para associar um editor de tipos de interface do usuário personalizado uma propriedade.Um editor de tipos de interface do usuário fornece uma interface de usuário para editar um propriedade ou tipo de dados.Um seletor de cores é um exemplo de um editor de tipos de interface do usuário.Exemplos de atributos são fornecidos no participante deste tópico.

    Observação:

    Se um conversor de tipo ou um editor de tipos de interface do usuário não está disponível para a propriedade personalizada, você poderá implementar uma conforme descrito em Estendendo suporte em tempo de design.

O fragmento de código a seguir define uma propriedade personalizada chamada EndColor para o controle personalizado FlashTrackBar.

Public Class FlashTrackBar
   Inherits Control
   ...
   ' Private data member that backs the EndColor property.
   Private _endColor As Color = Color.LimeGreen

   ' The Category attribute tells the designer to display
   ' it in the Flash grouping. 
   ' The Description attribute provides a description of
   ' the property. 
   <Category("Flash"), _
   Description("The ending color of the bar.")>  _
   Public Property EndColor() As Color
      ' The public property EndColor accesses _endColor.
      Get
         Return _endColor
      End Get
      Set
         _endColor = value
         If Not (baseBackground Is Nothing) And showGradient Then
            baseBackground.Dispose()
            baseBackground = Nothing
         End If
         ' The Invalidate method calls the OnPaint method, which redraws  
         ' the control.
         Invalidate()
      End Set
   End Property
   ...
End Class
public class FlashTrackBar : Control {
   ...
   // Private data member that backs the EndColor property.
   private Color endColor = Color.LimeGreen;
   // The Category attribute tells the designer to display
   // it in the Flash grouping. 
   // The Description attribute provides a description of
   // the property. 
   [
   Category("Flash"),
   Description("The ending color of the bar.")
   ]
   // The public property EndColor accesses endColor.
   public Color EndColor {
      get {
         return endColor;
      }
      set {
         endColor = value;
         if (baseBackground != null && showGradient) {
            baseBackground.Dispose();
            baseBackground = null;
         }
         // The Invalidate method calls the OnPaint method, which redraws 
         // the control.
         Invalidate();
      }
   }
   ...
}

O fragmento de código a seguir associa um conversor de tipo e um editor de tipos de interface do usuário com a propriedade Value. Neste caso Value é um número inteiro e possui um conversor de tipo padrão, mas o TypeConverterAttribute atributo se aplica a um (conversor de tipo personalizadoFlashTrackBarValueConverter) que permite que o designer para exibi-la sistema autônomo uma porcentagem. O editor de tipos de interface do usuário, FlashTrackBarValueEditor, permite que o percentual a ser exibido visualmente. Este exemplo também mostra que o conversor de tipo ou editor especificado pelo TypeConverterAttribute ou EditorAttribute atributo substitui o conversor padrão.

<Category("Flash"), _
TypeConverter(GetType(FlashTrackBarValueConverter)), _
Editor(GetType(FlashTrackBarValueEditor), _
GetType(UITypeEditor)), _
Description("The current value of the track bar.  You can enter an actual value or a percentage.")>  _
Public ReadOnly Property Value() As Integer
...
End Property
[
Category("Flash"), 
TypeConverter(typeof(FlashTrackBarValueConverter)),
Editor(typeof(FlashTrackBarValueEditor), typeof(UITypeEditor)),
Description("The current value of the track bar.  You can enter an actual value or a percentage.")
]
public int Value {
...
}

Consulte também

Conceitos

Definindo valores padrão com o ShouldSerialize e métodos de reiniciar

Eventos de alteração de propriedade

Atributos de controles Windows Forms

Outros recursos

Propriedades em controles Windows Forms