C'est souvent un bon choix lorsque vous êtes à la création de contrôles personnalisés, et que vous souhaitez empêcher certaines propriétés qui apparaissent dans le concepteur. Parfois, les propriétés ne sont pas substituables, mais le concepteur n'a pas de soins à ce sujet, il ne se soucie de savoir si ou non le niveau le plus bas de la propriété publique a l' [Browsable]
d'attribut.
Par exemple, disons que votre commande ne prend pas en charge le rembourrage. Le Contrôle.Rembourrage de la propriété n'est pas remplaçable. Mais vous savez aussi que rien de mauvais va se passer si quelqu'un définit la marge, il est juste que la propriété ne pas faire n'importe quoi, donc vous ne voulez pas que vos utilisateurs à voir dans le concepteur et pense qu'elle fonctionne réellement. Donc, le cacher:
public class MyControl : Control
{
[Browsable(false)]
public new Padding Padding
{
get { return base.Padding; }
set { base.Padding = value; }
}
}
Dans ce cas, nous sommes littéralement à l'aide de membres de la clandestinité pour masquer le membre - de la designer.
En aparté, je suis conscient qu'il existe d'autres moyens d'atteindre cet objectif - c'est juste une option possible.