Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / VB

Quick And Dirty Option Lists using Enums

5.00/5 (8 votes)
3 Jun 2014CPOL 33.1K  
Using Enum to provide a quick and easy option lists

You might have a form that sets some options, and you need a quick and easy way to get the value from the option selected or determine what was selected.
 
Well this is achievable using Enum(erators):
 
Take this example;

VB
Private Enum ListOfChoices
    Yes
    No
    Possibly
    Never
    Pass
End Enum

It is possible to quickly and easily dump this list into a dropdown list combo box, and then quickly pull the value the user selected.
 

VB
Private Sub MainForm_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    'Populate a combo box with the enum options
    ComboBox1.Items.AddRange([Enum].GetNames(GetType(ListOfChoices)))
End Sub
 
Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
    'Retrieve the Enum Text Name from the Index selected
    MsgBox("You Selected: " & [Enum].GetName(GetType(ListOfChoices), ComboBox1.SelectedIndex))
End Sub

You could have just read the combobox selected value, but the point was demonstrating get a Enum String from the Enum value.
 
Both the Enum and the Combobox have 0 based index values for the item lists, so it is easy to work them together. This is just as applicable to list boxes, etc.
 
Cheap and easy. Smile | :)

WARNING! As it says it is Quick and Dirty, it could just as easily cause you a lot of problems - Refer to this article for indepth discussion around enumerating enum's; http://www.codeproject.com/Articles/129830/Enumeration-Types-do-not-Enumerate-Working-around

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)