Attualmente sto sviluppando un'applicazione C#.Enum e caselle combinate in C#
Ho bisogno di usare un enum con una casella combinata per ottenere il mese selezionato. Ho il seguente per creare l'enumerazione:
enum Months
{
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};
Ho poi inizializzare il combobox utilizzando i seguenti:
cboMonthFrom.Items.AddRange(Enum.GetNames(typeof(Months)));
Questo bit di codice funziona bene ma il problema è quando provo ad ottenere l'enum selezionato valore per il mese selezionato
per ottenere il valore della enumeratore dalla casella combinata ho usato il seguente:
private void cboMonthFrom_SelectedIndexChanged(object sender, EventArgs)
{
Months selectedMonth = (Months)cboMonthFrom.SelectedItem;
Console.WriteLine("Selected Month: " + (int)selectedMonth);
}
Tuttavia, quando provo a eseguire il codice sopra, viene visualizzato un errore che indica che si è verificata una prima eccezione di tipo System.InvalidCastException
.
Quello che ho fatto di sbagliato.
Grazie per tutto l'aiuto che si può offrire
eccellente che ha funzionato perfettamente. Grazie – Boardy
Non è necessario inserire le stringhe nella casella combinata e quindi analizzarle nuovamente nei valori di 'Mesi'. Basta memorizzare i valori di 'Mesi' stessi. – Timwi
Non è necessario memorizzare i valori stringa nella casella combinata e recuperarli come enumerazioni. È necessario aggiungere i valori enum come elementi della casella combinata OPPURE ottenerli come stringa e convertirli in enumerazione. Questo è il motivo per cui ho suggerito di fare quest'ultimo. – SadullahCeran