在winforms组合框中显示枚举值

use*_*862 4 .net c# winforms

假设我有以下枚举

public enum MyMode { A = 1, B = 2, C = 3, D = 4 };
Run Code Online (Sandbox Code Playgroud)

我想用这个枚举作为组合框内的值列表,我尝试过

cmbMyMode.Items.Add(Enum.GetValues(typeof(MyMode )));
Run Code Online (Sandbox Code Playgroud)

但是我得到了关注

MyMode[] Array
Run Code Online (Sandbox Code Playgroud)

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

谢谢

vc *_* 74 13

List<MyMode> modes = Enum.GetValues(typeof(MyMode)).Cast<MyMode>().ToList();
cmbMyMode.DataSource = modes;
Run Code Online (Sandbox Code Playgroud)

并自定义标签:

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;
Run Code Online (Sandbox Code Playgroud)

然后

cmbMyMode.SelectedValue
Run Code Online (Sandbox Code Playgroud)