Partilhar via


Use Reset e ShouldSerialize para controlar uma propriedade (Windows Forms .NET)

Neste artigo, você aprenderá a criar os métodos e para gerenciar uma propriedade para a janela Propriedades no Visual Studio. Reset e ShouldSerialize são métodos opcionais que você pode fornecer para uma propriedade, se a propriedade não tiver um valor padrão simples. Se a propriedade tiver um valor padrão simples, você deverá aplicar o DefaultValueAttribute e fornecer o valor padrão ao construtor da classe de atributo. Qualquer um desses mecanismos habilita os seguintes recursos no designer:

  • A propriedade fornece indicação visual no navegador de propriedades se ela tiver sido modificada de seu valor padrão.
  • O usuário pode clicar com o botão direito do mouse na propriedade e escolher Redefinir para restaurar a propriedade ao seu valor padrão.
  • O designer gera um código mais eficiente.

Para obter mais informações sobre propriedades, consulte Reset e ShouldSerialize.

Código de suporte

Este artigo demonstra os métodos Reset e ShouldSerialize através da criação de um controlo de rosa-dos-ventos. Se estiver a trabalhar com o seu próprio controlo de utilizador, pode ignorar esta secção.

  1. Adicione a seguinte enumeração ao seu código:

    public enum Directions
    {
        None,
        North,
        NorthEast,
        East,
        SouthEast,
        South,
        SouthWest,
        West,
        NorthWest,
    }
    
    Public Enum Directions
        None
        North
        NorthEast
        East
        SouthEast
        South
        SouthWest
        West
        NorthWest
    End Enum
    
  2. Adicione um controle de usuário chamado CompassRose.

  3. Adicione uma propriedade chamada Direction do tipo Directions ao controle de usuário.

    public Directions Direction { get; set; } = Directions.None;
    
    Public Property Direction As Directions = Directions.None
    

Redefinir

O método Reset<PropertyName> redefine a propriedade <PropertyName> correspondente para seu valor padrão.

O código a seguir redefine a propriedade Direction para None, que é considerado o valor padrão para o controle rosa dos ventos.

private void ResetDirection() =>
    Direction = Directions.None;
Private Sub ResetDirection()
    Direction = Directions.None
End Sub

DeveSerializar

O método ShouldSerialize<PropertyName> retorna um valor booleano que indica se a propriedade de suporte foi ou não alterada de seu valor padrão e deve ser serializada no código do designer.

O código a seguir retorna true quando a propriedade Direction não é igual a None, indicando que uma direção foi escolhida:

private bool ShouldSerializeDirection() =>
    Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
    Return Direction <> Directions.None
End Function

Exemplo

O código a seguir mostra os métodos Reset e ShouldSerialize para a propriedade Direction:

public partial class CompassRose : UserControl
{
    public Directions Direction { get; set; } = Directions.None;

    public CompassRose() =>
        InitializeComponent();

    private void ResetDirection() =>
        Direction = Directions.None;

    private bool ShouldSerializeDirection() =>
        Direction != Directions.None;
}
Public Class CompassRose

    Public Property Direction As Directions = Directions.None

    Private Sub ResetDirection()
        Direction = Directions.None
    End Sub

    Private Function ShouldSerializeDirection() As Boolean
        Return Direction <> Directions.None
    End Function

End Class