如何在下拉列表中显示枚举属性?

时间:2011-02-17 20:40:22

标签: c# winforms

我正在制作一个简单的自定义控件,我希望有一个dropdownlist定义的自定义属性,我很困惑为什么下面的代码无法在属性中显示enum组合框列表。

如何在下拉列表中显示enum值?

public partial class MyComboBox : ComboBox
{
    public enum Multipliers { B = 1, KB = 2, MB = 10, GB = 20, TB = 30 } { get; set; }
    public string SuperType { get; set; }
    public bool Global { get; set; }
}

3 个答案:

答案 0 :(得分:2)

您没有显示任何与您如何将这些枚举值放入实际显示列表相关的代码。您必须将ComboBox指向您的枚举作为DataSource(技术上您必须在调用Enum.GetValues(typeof(Multipliers))时指向它),或者手动操作Items集合,以将您的值放入列表中。

答案 1 :(得分:1)

以下是您需要做的事情:

foreach (var item in Enum.GetValues(typeof(Multipliers )))
        {
            ComboBox1.Items.Add(item);
        }

答案 2 :(得分:0)

枚举是MyComboBox中的一种类型,而不是属性。

你可以创建一个这样的属性:

public partial class MyComboBox : ComboBox
{
    public enum Multipliers { B = 1, KB = 2, MB = 10, GB = 20, TB = 30 }
    public string SuperType { get; set; }
    public bool Global { get; set; }
    public Multipliers myMultiplierProperty {get; set;}
}

关于组合框中显示这些属性的方式很大程度上取决于将它们放在那里的代码。既然你没有给我们这个,那么如果问题就在那里我就无能为力。