从枚举中设置组合框中的默认值

时间:2014-10-14 18:56:01

标签: c#

我有一个组合框,我从枚举中得到了一些值。

我希望程序启动时在组合框上显示一个默认值..但我无法让它工作.. 这是我迄今为止在MainForm中尝试的内容:

cmbPrio.Items.AddRange(Enum.GetNames(typeof(PriorityType.Prioritytypes)));
cmbPrio.SelectedValue = PriorityType.Prioritytypes.Normal;

这是带有枚举的类:

class PriorityType
{
    public enum Prioritytypes
    {
        Very_Important, 
        Important, 
        Normal, 
        Less_Importan
    }
}

3 个答案:

答案 0 :(得分:3)

您正在将名称填充到组合中,该组合只是字符串的集合,这意味着您用于设置的值也必须是字符串。

cmbPrio.SelectedValue = Enum.GetName(typeof(PriorityType.Prioritytypes), PriorityType.Prioritytypes.Normal);

答案 1 :(得分:0)

为什么不设置Index? :

cmbPrio.SelectedIndex = 0;

答案 2 :(得分:0)

另一种方法是将ComboBox项设置为:

cmbPrio.Items.AddRange(Enum.GetValues(typeof(PriorityType.PriorityTypes))
                           .Cast<PriorityType.PriorityTypes>());
cmbPrio.SelectedValue = PriorityType.PriorityTypes.Normal;

这允许您将选定的值视为实际PriorityType.PriorityTypes而不是字符串。

相关问题