Try this
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
ComboBox1.Items.AddRange([Enum].GetNames(GetType(States)))
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim ID As Integer
ID = DirectCast([Enum].Parse(GetType(States), ComboBox1.SelectedItem.ToString), Integer)
End Sub
edit: This cleans up the names and has the State abbreviations sorted.
Imports System.ComponentModel
Public Class Form1
Public Enum States
<Description("NA")> NA_ = 0
<Description("AK")> AK_ = 1
<Description("AL")> AL_ = 2
<Description("AR")> AR_ = 3
<Description("AZ")> AZ_ = 4
<Description("CA")> CA_ = 5
<Description("CO")> CO_ = 6
<Description("CT")> CT_ = 7
<Description("DE")> DE_ = 8
<Description("FL")> FL_ = 9
<Description("GA")> GA_ = 10
<Description("HI")> HI_ = 11
<Description("IA")> IA_ = 12
<Description("ID")> ID_ = 13
<Description("IL")> IL_ = 14
<Description("IN")> IN_ = 15
<Description("KS")> KS_ = 16
<Description("KY")> KY_ = 17
<Description("LA")> LA_ = 18
<Description("MA")> MA_ = 19
<Description("MD")> MD_ = 20
<Description("ME")> ME_ = 21
<Description("MI")> MI_ = 22
<Description("MN")> MN_ = 23
<Description("MO")> MO_ = 24
<Description("MS")> MS_ = 25
<Description("MT")> MT_ = 26
<Description("NC")> NC_ = 27
<Description("ND")> ND_ = 28
<Description("NE")> NE_ = 29
<Description("NH")> NH_ = 30
<Description("NJ")> NJ_ = 31
<Description("NM")> NM_ = 32
<Description("NV")> NV_ = 33
<Description("NY")> NY_ = 34
<Description("OH")> OH_ = 35
<Description("OK")> OK_ = 36
<Description("OR")> OR_ = 37
<Description("PA")> PA_ = 38
<Description("RI")> RI_ = 39
<Description("SC")> SC_ = 40
<Description("SD")> SD_ = 41
<Description("TN")> TN_ = 42
<Description("TX")> TX_ = 43
<Description("UT")> UT_ = 44
<Description("VA")> VA_ = 45
<Description("VT")> VT_ = 46
<Description("WA")> WA_ = 47
<Description("WI")> WI_ = 48
<Description("WV")> WV_ = 49
<Description("WY")> WY_ = 50
End Enum
Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
Dim ie As IQueryable
ie = [Enum].GetValues(GetType(States)).AsQueryable
For Each i As States In ie
ComboBox1.Items.Add(GetEnumDescription(i))
Next
End Sub
Public Function GetEnumDescription(EnumConstant As [Enum]) As String
Dim attr() As DescriptionAttribute = DirectCast(EnumConstant.GetType().GetField(EnumConstant.ToString()).GetCustomAttributes(GetType(DescriptionAttribute), False), DescriptionAttribute())
Return If(attr.Length > 0, attr(0).Description, EnumConstant.ToString)
End Function
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
Dim ID As Integer '= ComboBox1.SelectedIndex '???
ID = DirectCast([Enum].Parse(GetType(States), ComboBox1.SelectedItem.ToString & "_"), Integer)
End Sub
End Class