John_Sheares
John_Sheares

Reputation: 1414

How to set an initial value for a user control property?

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?

Upvotes: 9

Views: 10109

Answers (3)

Jeff Ogata
Jeff Ogata

Reputation: 57833

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.

Upvotes: 10

pinkfloydx33
pinkfloydx33

Reputation: 12799

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.

Upvotes: 5

Lorenzo
Lorenzo

Reputation: 29427

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

Upvotes: 0

Related Questions