在winforms组合框中显示枚举值

时间:2013-05-24 08:30:00

标签: c# .net winforms

假设我有以下枚举

public enum MyMode { A = 1, B = 2, C = 3, D = 4 };

我希望将此枚举用作组合框内的值列表,我尝试使用

cmbMyMode.Items.Add(Enum.GetValues(typeof(MyMode )));

但我正在关注

MyMode[] Array

我需要显示A,B,C,D,是否可以使用自定义字符串代替A,B,C,D

由于

3 个答案:

答案 0 :(得分:13)

List<MyMode> modes = Enum.GetValues(typeof(MyMode)).Cast<MyMode>().ToList();
cmbMyMode.DataSource = modes;

并自定义标签:

var modes = Enum.GetValues(typeof(MyMode)).Cast<MyMode>().Select(mode => 
                   new { Value = mode, Title = string.Format("-->{0}<--", mode) }).
                 ToList();
cmbMyMode.ValueMember = "Value";
cmbMyMode.DisplayMember = "Title";
cmbMyMode.DataSource = modes;

然后

cmbMyMode.SelectedValue

答案 1 :(得分:3)

  cmbMyMode.Items.AddRange(Enum.GetNames(typeof(MyMode)));

答案 2 :(得分:1)

foreach (var name in Enum.GetNames(typeof(MyMode)))
{
    cmbMyMode.Items.Add(name);
}