C# 用枚举值填充组合框
在表单加载(编辑操作)时,我希望选择具有适当值的组合框。这些值的类型为LangEnum 我尝试了C# 用枚举值填充组合框,c#,winforms,C#,Winforms,在表单加载(编辑操作)时,我希望选择具有适当值的组合框。这些值的类型为LangEnum 我尝试了comboBoxLanguage.SelectedValue=book.Language但组合始终填充默认值(从枚举列表中的第一个) 更新: 书。语言声明为 public enum EnumLang{英语=1,德语=2,其他=3} 我两个都试过了 comboBoxLang.SelectedItem = (Book.EnumLang)book.Language; 和 comboBoxLang.Sele
comboBoxLanguage.SelectedValue=book.Language代码>但组合始终填充默认值(从枚举列表中的第一个)
更新:
书。语言声明为
public enum EnumLang{英语=1,德语=2,其他=3}代码>
我两个都试过了
comboBoxLang.SelectedItem = (Book.EnumLang)book.Language;
和
comboBoxLang.SelectedItem = book.Language;
而且什么都不起作用(默认的第一个值(英语)总是设置的),值得一提的是,在调试模式手册上。语言设置为德语或其他语言,但在combobox上选择了英语。我觉得不错!
我也在做同样的事情,你确定book.Language
string与列表中的一项完全匹配吗
在您尝试SelectedValue
之前是否填充了列表?最好尝试:
comboBoxLanguage.SelectedItem = book.Language;
// or even
comboBoxLanguage.Text = book.Language.ToString(); //should work
您可能需要设置ValueMember
属性以获取或设置SelectedValue
使用SelectedItem对我来说效果很好:
comboBoxLanguage.SelectedItem = book.Language;
您没有告诉book
是什么类型的变量:它是Langeum
类型吗?或者它是一个具有语言
属性的类?(在最后一种情况下:语言
属性的类型是什么?)
如果book
属于LangEnum
类型,您可以像其他人所说的那样使用SelectedItem
属性。(检查是否需要有关两个组合框属性之间差异的更多信息)
否则,您可能需要演员阵容:
comboBoxLanguage.SelectedItem=(LangEnum)book.Language代码>
此外,如果在WinForm事件中填充combobox,还应注意它们的触发顺序。查看表单更多信息。组合的值成员是什么?
?您说您正在尝试在表单的加载
事件中设置组合框的值。您是否尝试在代码的另一点中设置组合框项?例如,在窗体的显示的事件中,还是在窗体的构造函数中调用InitializeComponent()
方法之后?