简体   繁体   English

在winforms组合框中显示枚举值

[英]display enum values inside winforms combobox

Let's say that I have following enum 假设我有以下枚举

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

and I want to use this enum as list of values inside combobox, I tried with 我想用这个枚举作为组合框内的值列表,我尝试过

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

but I'm getting following 但是我得到了关注

MyMode[] Array

I need to display A, B, C, D, and is it possible to use custom string instead of A,B,C,D 我需要显示A,B,C,D,是否可以使用自定义字符串而不是A,B,C,D

Thanks 谢谢

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

And to customize the labels: 并自定义标签:

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;

and then 接着

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM