Utiliser Reset et ShouldSerialize pour contrôler une propriété (Windows Forms .NET)
Dans cet article, vous allez apprendre à créer les Reset<PropertyName>
méthodes et ShouldSerialize<PropertyName>
à gérer une propriété pour la fenêtre Propriétés dans Visual Studio. Reset
et ShouldSerialize
sont des méthodes facultatives que vous pouvez fournir pour une propriété, si la propriété n’a pas de valeur par défaut simple. Si la propriété a une valeur par défaut simple, vous devez appliquer la DefaultValueAttribute valeur par défaut et fournir la valeur par défaut au constructeur de classe d’attribut à la place. L’un de ces mécanismes permet les fonctionnalités suivantes dans le concepteur :
- La propriété fournit une indication visuelle dans le navigateur de propriétés si elle a été modifiée à partir de sa valeur par défaut.
- L’utilisateur peut cliquer avec le bouton droit sur la propriété et choisir Réinitialiser pour restaurer la propriété à sa valeur par défaut.
- Le concepteur génère du code plus efficace.
Pour plus d’informations sur les propriétés, consultez Reset and ShouldSerialize.
Code de prise en charge
Cet article illustre les méthodes et ShouldSerialize
les Reset
méthodes en créant un contrôle rose de boussole. Si vous utilisez votre propre contrôle utilisateur, vous pouvez ignorer cette section.
Ajoutez l’énumération suivante à votre code :
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
Ajoutez un contrôle utilisateur nommé
CompassRose
.Ajoutez une propriété nommée
Direction
de typeDirections
au contrôle utilisateur.public Directions Direction { get; set; } = Directions.None;
Public Property Direction As Directions = Directions.None
Réinitialiser
La Reset<PropertyName>
méthode réinitialise la propriété correspondante <PropertyName>
à sa valeur par défaut.
Le code suivant réinitialise la Direction
propriété None
, qui est considérée comme la valeur par défaut du contrôle rose boussole :
private void ResetDirection() =>
Direction = Directions.None;
Private Sub ResetDirection()
Direction = Directions.None
End Sub
ShouldSerialize
La ShouldSerialize<PropertyName>
méthode retourne une valeur booléenne qui indique si la propriété de stockage a changé de sa valeur par défaut et doit être sérialisée dans le code du concepteur.
Le code suivant retourne true lorsque la Direction
propriété n’est pas égale None
, indiquant qu’une direction a été choisie :
private bool ShouldSerializeDirection() =>
Direction != Directions.None;
Private Function ShouldSerializeDirection() As Boolean
Return Direction <> Directions.None
End Function
Exemple
Le code suivant montre les méthodes et ShouldSerialize
les Reset
méthodes de la Direction
propriété :
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
.NET Desktop feedback