Unfortunately no. If the property grid can access it, then any other code can too.
But there is a trick you can use that's specific to the property grid. Remove the public property and replace it with a dynamic runtime property using
ICustomTypeDescriptor
and
TypeDescriptionProvider
. I've got an article here that explains how to do this:
http://www.codeproject.com/KB/cs/UsingTypeDescriptionProv.aspx[
^]
It is not a very simple task but it's not too complex either.