Closer Look: Adding Properties with Named Values
In this lesson, you will learn how to add a property that contains a list of values to your user control.
Named Values
The properties that you added to your user control to this point all took string values, but properties can be of many different types. Sometimes you will want to provide a list of pre-set values to select from, like the SizeMode property of the PictureBox control that you set in an earlier lesson.
Say, for example, that you want to create a property for the NamesControl that enables you to choose how the FullName label displays the name. You will need a list of the values to choose from: first name first, last name first, first and last name only, and so forth.
In Visual Basic you can create an enumeration that contains the values that you want. "Enumeration" is just a fancy word for "numbered list"; Visual Basic stores the numbers for you so that you can refer to the values by name. You declare an enumeration by using the Enum keyword, as in the following example.
Public Enum Display
FirstMiddleLast
FirstLast
LastFirstMiddle
LastFirst
End Enum
Once you have created an enumeration, you can use it just like any other data type. To add a property that displays a list of values, you first declare a variable of the same data type as Enum, and then declare a property of the same data type. At design time, a list of the values that are contained in the enumeration will appear in the Properties window.
Try It!
To add a property that displays a list of values
Open the NamesUserControl project that you created in the previous lesson. If you did not save it, you will first have to go back to the previous lesson, Adding Code to Your User Control, and complete the procedures in that lesson.
In Solution Explorer, select NamesControl.vb, and then on the View menu click Code.
In the Code Editor, add the following code to create an enumeration.
Public Enum Display FirstMiddleLast FirstLast LastFirstMiddle LastFirst End Enum
Add the following code to add a new property.
Private DisplayStyleList As Display Property DisplayStyle() As Display Get Return DisplayStyleList End Get Set(ByVal value As Display) DisplayStyleList = value End Set End Property
Delete the existing code in the FirstName_TextChanged event handler, and replace it with the following code.
Select Case DisplayStyleList Case Display.FirstLast FullName.Text = FirstName.Text & " " & LastName.Text Case Display.FirstMiddleLast FullName.Text = FirstName.Text & " " & MiddleName.Text & " " & LastName.Text Case Display.LastFirst FullName.Text = LastName.Text & ", " & FirstName.Text Case Display.LastFirstMiddle FullName.Text = LastName.Text & ", " & FirstName.Text & " " & MiddleName.Text End Select
Press F5 to run the program. Enter your first, last, and middle names in the three text boxes.
In the UserControl TestContainer,scroll to the bottom of the Properties grid and select the DisplayStyle property. Select a different value and then change the text in one of the text boxes see how it affects the label.
On the File menu, click Save All to save your work.
Next Steps
In this lesson, you learned how to use an enumeration to create a property that has a list of values. In the next lesson, you will learn how to test your user control by putting it on a form.
Next Lesson: Testing Your User Control
See Also
Tasks
Adding Code to Your User Control
Other Resources
Visible Objects: Creating Your First User Control