[.NET] Utiliser une PasswordBox dans un PropertyGrid
Le PropertyGrid est un contrôle très pratique dont le rôle est de proposer une interface utilisateur permettant d'explorer les propriétés d'un objet: c'est le composant que l'on retrouve dans le grille des propriétés de Visual Studio.
Cependant, lorsque l'on désire l'utiliser pour afficher un mot de passe, on se retrouve vite confronté à un problème de taille: le mot de passe est visible en clair dans le contrôle !
Pour éviter cela, et ainsi masquer le mot de passe dans votre PropertyGrid, il existe une attribut à utiliser sur la propriété que vous désirez afficher comme un mot de passe.
L'attribut en question, le PasswordPropertyTextAttribute, s'utilise donc tout simplement de la manière suivante:
[PasswordPropertyTextAttribute(true)]
Cependant, il est possible que, comme moi, vous n'utilisez pas directement les propriétés et ainsi, vous ne pouvez pas utiliser cet attribut.
Pas de problèmes: dans votre classe qui hérite de ProertyDescriptor, surcharger la méthode FillAttributes pour rajouter, au bon moment, cet attribut:
protected override void FillAttributes(IList attributeList)
{
base.FillAttributes(attributeList);
if (this.propName.ToLower() == "password")
{
attributeList.Add(new PasswordPropertyTextAttribute(true));
}
}
Et le tour est joué 
A+
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :