我有一个组合框,我从枚举中得到了一些值。
我希望程序启动时在组合框上显示一个默认值..但我无法让它工作.. 这是我迄今为止在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
}
}
答案 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
而不是字符串。