Definindo uma propriedade em controles do Windows Forms

Para uma visão geral das propriedades, consulte Visão geral sobre propriedades. Existem 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, chame o Invalidate método (que herda do seu controle Control) da set acessador. Invalidatechama o OnPaint método, que redesenha o controle. Várias chamadas para Invalidate resultam em uma única chamada para OnPaint de eficiência.

  • A.NET Framework class library fornece conversores de tipo para tipos de dados comuns, como, por exemplo, inteiros, números decimais, valores booleanos e outros. A finalidade de um conversor de tipo geralmente é fornecer a conversão do valor de seqüência (a partir de dados de seqüência de caracteres para outros tipos de dados). Tipos de dados comuns são associados com os conversores de tipo padrão converter valores como seqüências de caracteres e seqüências de caracteres em tipos de dados apropriados. Se você definir uma propriedade que é um personalizado (isto é, fora do padrão) o tipo de dados, você terá que aplicar um atributo que especifica o conversor de tipo para associar a essa propriedade. Você também pode usar um atributo para associar um editor UI de tipo personalizado uma propriedade. Um editor UI de tipo fornece uma interface de usuário para editar um propriedade ou tipo de dados. Um seletor de cores é um exemplo de um editor UI de tipo. Exemplos de atributos de recebem no final deste tópico.

    ObservaçãoObservação

    Se um conversor de tipo ou um editor UI de tipo não estiver disponível para a propriedade personalizada, você pode 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 UI de tipo com a propriedade Value. Nesse caso Value é um inteiro e possui um conversor de tipo de padrão, mas o TypeConverterAttribute atributo se aplica a um conversor de tipo personalizado (FlashTrackBarValueConverter) que permite que o designer para exibi-la como uma porcentagem. O editor do tipo 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 o 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 os valores padrão com o ShouldSerialize e redefinir métodos

Eventos de propriedade alterada

Atributos de controles do Windows Forms

Outros recursos

Propriedades de controles do Windows Forms