I have some complex (fairly) user controls that I have created. Some
of those user controls host other user controls. When I host one of
these on a WinForm, I sometimes run into problems where the designer
blows up with an "Object Reference Not Set to an Instance of an
Object". Sometimes it even (so kindly) "munches" my code in the
hosting control. Unfortunately, it seldm if ever tlss "where" exactly
the problem occurred, and to my knowledge there is no way to run the
designer in debug mode and stop through what it's doing.
My fix, for now, as been to put a "if( !DesignMode) test around al of
the set / get fxns in my properties. This works (usally.... Although
under certain circumstants, the designer has apparently not set the
value of the DesignMode property by the time these properties are
getting configured.) All this fact-checking in my propertis is
superfluous, were it not for the fact that the designer always wants
to assign values to them that sometimes do not make sense. Especially
and most particularly when the properties take objects as their
values, and the designer is trying to assign "NULL" to them.
Is there some attribute that I can assign to my properties that will
prevent the designer from trying to retreive values from, or assign
values to them while rendering the control in design mode? I have
seen the [Borwseable()] attribute, but that doesn't seem to fully
cover it. Is there a collection of information on these attributes
somewhere that I can read up on? Surely there has to be a better way
to do this other than what I am currently having to do.
Thanks for any help. :)
JIM
PS - Someone in the newsgroups said that the "IS" in fact a way to run
the designer in debug mode so that I can hunt dorwn problems like this
when they occur. Does anyone know how to do this or where the article
is on it? I still really think though that there is a way to keep the
thing from trying to set my properties for me. Any help is
appreciated.