Jeff-

This should work:

<Code snippet = VB.NET>

Private m_AlternateBackColor As Color = SystemColors.Control

<Category("Appearance"), _
Description("Gets or Sets the alternate back color."), _
DefaultValue(GetType(Color), "Control")> _
Public Property AlternateBackColor As Color
        Get
                Return m_AlternateBackColor
        End Get
        Set(ByVal Value As Color)
                m_AlternateBackColor = Value
        End Set
End Property

</Code Snippet>

Jacob A. Grass
 


> -----Original Message-----
> From: Jeff [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, May 16, 2002 7:42 AM
> To: [EMAIL PROTECTED]
> Subject: [DOTNET] DefaultValue() Attribute Question
> 
> 
> I searched the list and the net and found a few vague references to my
> question, but no concrete answers.
> 
> I have a control where I want to specify default values so 
> the property
> grid does not incorrectly bold the default settings (visual 
> cue that they
> have been changed from the default when this is in fact not true).
> 
> Say I have something along the lines of:
> 
> [Category("Appearance"),
> Description("Gets or sets alternate background color."),
> Browsable(true),
> DefaultValue(SystemColors.Control)]
> 
> public Color AlternateBackColor
> {
>   get {return alternateBackColor;}
> 
>   set {alternateBackColor = value;}
> }
> 
> The error I get, of course, is:
> "An attribute argument must be a constant expression, typeof 
> expression or
> array creation expression"
> 
> So, how to make this a constant expression?
> 
> I have tried other things like DefaultValue(-2830136) (the 
> RGB value I get
> returned for SystemColors.Control), but neither this, nor any 
> of the other
> things I have tried has worked.
> 
> Does anyone know how to specify real default settings 
> attributes for Color
> and Font properties like this?  Bool, int, string, etc are so 
> easy, but
> it's just not intuitive for any of these complex object 
> types.  I won't be
> surprised if someone shows me it's really easy for Color, but 
> Font looks
> like it would be a bit more complex to represent in this 
> attribute in some
> way.
> 
> I would say the bold in the property grid is simply a 
> cosmetic thing, but
> it gives a completely false user cue and is unprofessional.
> 
> Any insight into this would be appreciated.
> 
> Thanks,
> 
> Jeff
> 
> You can read messages from the DOTNET archive, unsubscribe 
> from DOTNET, or
> subscribe to other DevelopMentor lists at http://discuss.develop.com.
> 

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to