現在、C#アプリケーションを開発中です。C#の列挙型とコンボボックス
選択した月を取得するには、コンボボックスで列挙型を使用する必要があります。私は、列挙型を作成するには、次のいます
enum Months
{
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};
私は、次を使用してコンボボックスを初期化:
cboMonthFrom.Items.AddRange(Enum.GetNames(typeof(Months)));
コードのこのビットは、しかし、正常に動作し、私が選択した列挙型を取得しようとすると問題があります選択した月
私は次のように使用しているコンボボックスから値を列挙子を取得するための値:
private void cboMonthFrom_SelectedIndexChanged(object sender, EventArgs)
{
Months selectedMonth = (Months)cboMonthFrom.SelectedItem;
Console.WriteLine("Selected Month: " + (int)selectedMonth);
}
しかし、上記のコードを実行しようとすると、タイプSystem.InvalidCastException
のファーストチャンス例外が発生したというエラーが表示されます。
私は間違っています。あなたは正しい変更
優れています。 – Boardy
コンボボックスに文字列を入力してから、それらを解析して 'Months'値に戻す必要はありません。 'Months'値自体を保存するだけです。 – Timwi
文字列値をコンボボックスに格納し、列挙として取得することは想定されていません。コンボボックスの項目としてenum値を追加するか、文字列として取得して列挙に変換する必要があります。それが私が後者をすることを提案した理由です。 – SadullahCeran