[Mono-winforms-list] Private ImageList methods removed in r69012

Kornél Pál kornelpal at gmail.com
Wed Dec 6 10:43:30 EST 2006


Hi,

I got some weird results (I used Visual Studio 2005):
Private Reset... methods are ignored but private ShouldSerialize... methods 
are used.

Previously I didn't realize this behavior.

Note ShouldSerialize... does not affect the property browser but affects the 
designer generated code and it is definitely affected by private 
ShouldSerialize... methods.

Previosuly I added this comment:
// MS.NET 2.0 initializes TransparentColor to Color.Transparent in
// constructors but ResetTransparentColor and 
ShouldSerializeTransparentColor
// default to Color.LightGray that is treated as a bug.

But now that .NET Framework 2.0 is already released and this wasn't fixed we 
should follow MS.NET behavior if we reintroduce the remove methods.

The private Reset... methods are ignored by Visual Studio and I'm not sure 
whether we should implement them:
- Implementing them is good because it provides consistency with 
ShouldSerialize... that follows the specification 
(http://msdn2.microsoft.com/en-us/library/53b8022e.aspx) and other designers 
can use it and future Visual Studio versions may use it.
- Implementing them is useless because they are not used.

I think we should implement ShouldSerialize... methods because they are 
used.

Kornél

----- Original Message ----- 
From: "Greg Creme" <gcreme at ncsadvantage.com>
To: "'Chris Toshok'" <toshok at ximian.com>; "'Kornél Pál'" 
<kornelpal at gmail.com>
Cc: <mono-winforms-list at lists.ximian.com>
Sent: Wednesday, December 06, 2006 3:59 PM
Subject: RE: [Mono-winforms-list] Private ImageList methods removed in 
r69012


Hi Chris,

I had a minute so I did what you asked in vs2003.

For the imagelist properties:
1.  Color Depth:
Initial:  Property name is not bold, property value is not bold,
reset disabled.
Changed:  Property name is not bold, property value becomes bold,
reset is enabled.

2.  ImageSize and Transparent Color (both act the same)
Initial:  Property name is not bold, property value is bold, reset
disabled.
Changed:  Property name is not bold, property value is bold, reset
disabled.

Hope this helps.

Thanks,
Greg

-----Original Message-----
From: mono-winforms-list-bounces at lists.ximian.com
[mailto:mono-winforms-list-bounces at lists.ximian.com] On Behalf Of Chris
Toshok
Sent: Wednesday, December 06, 2006 9:47 AM
To: Kornél Pál
Cc: mono-winforms-list at lists.ximian.com
Subject: Re: [Mono-winforms-list] Private ImageList methods removed in
r69012

so I just brought up visual c# express (which is admittedly 2.0) and
none of the image list properties affected (ColorDepth, ImageSize,
TransparentColor) acted as if they had a Reset or ShouldSerialize
method.

from that article, an easy way to determine this is:

1. select the ImageList in the design surface.

2. Look at its properties.  If a property is in bold, it doesn't have a
ShouldSerialize method (and also doesn't have a DefaultValue attribute,
but that's irrelevant here).

3. change the value of the property, then right click on it.  If the
"Reset" item in the menu is disabled ,the property lacks a Reset method
(and also lacks a DefaultValue attribute, but again that's irrelevant).

in all three cases, the property was bold at the start, and the reset
menu item was never enabled.  Would someone mind doing the above 3 steps
on those three properties inside vs2003?

are these methods used in another context outside of designers?  If not,
I'd say removing them was the right change.  If they're needed in 1.1
I'll add them back in ifdefed for 1.1 and make them internal instead of
private to keep the warnings down.

Chris

On Wed, 2006-12-06 at 09:24 -0500, Chris Toshok wrote:
> do we know that the designer in visual studio behaves as if it can call
> these methods?  The designers of course have to use reflection to find
> the methods, but in the other cases these methods aren't private.  If
> visual studio behaves as if the methods are there, we have another piece
> (besides the msdn docs and corcompare output) we need to look at to see
> which methods needs implementing.
>
> Chris
>
> On Wed, 2006-12-06 at 14:37 +0100, Kornél Pál wrote:
> > Hi,
> >
> > The removed methods were private but they were intended to be used by
> > designers.
> >
> > This feauture is documented:
> > http://msdn2.microsoft.com/en-us/library/53b8022e.aspx
> >
> > Also note that I noticed the behavior in Visual Studio designer that can

> > only be implemented using these methods.
> >
> > And I belive that it is legal to call these methods using reflection and

> > study their behavior altough it wasn't necessary.
> >
> > Applications should not rely on the presence or absence of these methods
if
> > they are private but a properly implemented designer (or maybe other
> > applications) can call these methods and the absence of these methods
will
> > result in different designer behavior regarding the default property
values.
> >
> > Kornél
> >
> > _______________________________________________
> > Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-winforms-list
>
> _______________________________________________
> Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list

_______________________________________________
Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-winforms-list

-- 
I am using the free version of SPAMfighter for private users.
It has removed 1118 spam emails to date.
Paying users do not have this message in their emails.
Get the free SPAMfighter here: http://www.spamfighter.com



More information about the Mono-winforms-list mailing list