WinForms で列挙型をコンボ ボックスにバインドする方法については、多くの人が回答しています。次のようになります。
comboBox1.DataSource = Enum.GetValues(typeof(MyEnum));
しかし、実際に表示する値を設定できないと、これはあまり役に立ちません。
私が試してみました:
comboBox1.SelectedItem = MyEnum.Something; // Does not work. SelectedItem remains null
私も試しました:
comboBox1.SelectedIndex = Convert.ToInt32(MyEnum.Something); // ArgumentOutOfRangeException, SelectedIndex remains -1
これを実行する方法について何かアイデアをお持ちの方はいらっしゃいますか?
ベストアンサー1
列挙型
public enum Status { Active = 0, Canceled = 3 };
ドロップダウンの値を設定する
cbStatus.DataSource = Enum.GetValues(typeof(Status));
選択した項目から列挙型を取得する
Status status;
Enum.TryParse<Status>(cbStatus.SelectedValue.ToString(), out status);