NB : This question is tagged C# too as it is a general question and an
answer describing the use of this in C# is perfectly fine to me.
Dim attributes = MyPropertyGrid.BrowsableAttributes
For Each A As Attribute In attributes
Dim Browsable As BrowsableAttribute = CType(A, BrowsableAttribute)
'Then how can I use this ? it's only property is Browsable (True/False)
The PropertyGrid iterates over all properties of an object, using an approach similar to this answer. While it does it, it checks all attributes associated with that property and checks if it can find a match with the AttributeCollection (sample code, how this can be done is here). If it can find it, it will show up in the property grid, otherwise not.
The purpose is, that you can hide public properties to show up in a property grid by either mark it with
[Browsable(false)] if you need a blacklist support. If you like a whitelist approach, you can define your own Attribute, apply it to all desired properties and set the
BrowsableAttribute to a collection containing your own attribute only.