Vb.Net Collegare una ComboBox con una Enumerazione

Più di una volta, a lavoro, mi è capitato di dover inserire in un controllo ComboBox una lista Enumerata, dopo alcuni tentativi sono arrivato a questa soluzione.

Creiamo una Enumerazione:

Enum Colori
    Bianco = 1
    Rosso = 2
    Verde = 3
    Blu = 4
    Nero = 5
End Enum

Per collegarla al nostro controllo ComboBox, scriviamo:

cmbColori.DataSource = [Enum].GetValues(GetType(Colori))

Con questa riga, il controllo verrà popolato dai valori della nostra Enumerazione, vedi figura:

ComboBox Collegata

Per recuperare il valore dal controllo, basta che nell’evento SelectedIndexChanged della ComboBox scriviamo questa riga:

Dim valore As Colori = cmbColori.SelectedValue

Dopo aver recuperato il valore, possiamo visualizzarlo in un controllo Label usando la proprietà Text:

Valore nella Label

Questa soluzione può essere usata anche per collegare altri controlli, come ad esempio una ListBox.

Di seguito per completezza l’esempio completo:

Public Class Form1

    Enum Colori
        Bianco = 1
        Rosso = 2
        Verde = 3
        Blu = 4
        Nero = 5
    End Enum

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        cmbColori.DataSource = [Enum].GetValues(GetType(Colori))
    End Sub

    Private Sub cmbColori_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbColori.SelectedIndexChanged
        Dim valore As Colori = cmbColori.SelectedValue
        lblValore.Text = valore
    End Sub
End Class

Written by 

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.