views:

29

answers:

3

I am creating a custom user control and I am wondering how do you set an initial value for a property during design time? I have a property called Alignment that has 4 enum values TopRight, TopLeft, BottomRight and BottomLeft. So, when a user drops the user control onto a Form, I want the initial value of the property to be always BottomRight. How can I do this?

A: 

In your user control code behind initialize the property with the value BottomRight.

Lorenzo
+1  A: 

You should set the initial value in the constructor of your user control, or when you declare the backing variable for the property.

The DefaultValue attribute does not set the initial value. As noted in the documentation, you need to set the initial value in code; the designer will use the DefaultValue attribute to determine whether to generate code to set the property.

adrift
Thanks, that did it.
John_Sheares
+1  A: 

Set Attributes for the property

[DefaultValue(typeof(AlignmentType), "BottomRight")]
public AlignmentType Alignment {

}

Edit: Actually, the above only helps the designer determine if it needs to otherwise specify the property in the initialization code.

With that in mind, you would simply either use your constructor to set the default value, or set the default value with the variable declaration.

pinkfloydx33
The `DefaultValue` attribute doesn't set the initial value.
adrift
Actually, you are correct. Apparently it determines if the designer needs to specify the value if its something different
pinkfloydx33