在来自枚举的组合框中设置默认值

本文关键字:设置 默认值 组合 枚举 | 更新日期: 2023-09-27 18:26:33

我有一个组合框,其中有一些来自枚举的值。

我希望程序启动时在组合框上显示一个默认值。。但是我不能让它工作。。这是我迄今为止在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
    }
}

在来自枚举的组合框中设置默认值

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

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

为什么不简单地设置Index?:

cmbPrio.SelectedIndex = 0;

另一种选择是将ComboBox项设置为:

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

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