列挙型を WinForms コンボボックスにバインドして設定する 質問する

列挙型を WinForms コンボボックスにバインドして設定する 質問する

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); 

おすすめ記事