使用枚举值填充组合框
本文关键字:组合 填充 枚举 | 更新日期: 2023-09-27 18:36:01
在表单加载(编辑操作)时,我想选择具有适当值的组合框。这些值的类型为 LangEnum。
我尝试使用comboBoxLanguage.SelectedValue = book.Language;
但组合始终填充默认值(枚举列表中的第一个)。
更新:
书。语言声明为
public enum EnumLang { English = 1, German = 2, Other = 3 };
我都试过了
comboBoxLang.SelectedItem = (Book.EnumLang)book.Language;
并与
comboBoxLang.SelectedItem = book.Language;
没有任何效果(默认的第一个值(英语)始终设置),值得一提的是调试模式书。"语言"设置为"德语"或"其他",但在组合框中选择了"英语"。
这对我来说是正确的!我正在做同样的事情,您确定book.Language
字符串与列表中的某个项目完全匹配吗?
尝试SelectedValue
之前是否填充了列表?
最好试试:
comboBoxLanguage.SelectedItem = book.Language;
// or even
comboBoxLanguage.Text = book.Language.ToString(); //should work
您可能希望设置 ValueMember
属性以获取或设置SelectedValue
。
使用 SelectedItem 对我来说效果很好:
comboBoxLanguage.SelectedItem = book.Language;
你没有告诉book
是什么样的变量:它是LangEnum
类型吗?还是具有Language
属性的类?(在最后一种情况下:Language
属性的类型是什么?
如果book
属于LangEnum
类型,则可以像其他人所说的那样使用 SelectedItem
属性。(如果您需要有关两个组合框属性之间差异的更多信息,请查看此 SO 问题)否则,您可能需要一个演员表:
comboBoxLanguage.SelectedItem = (LangEnum)book.Language;
此外,如果要在 WinForm 事件中填充组合框,则还应关注它们的触发顺序。看看这个SO问题表格更多信息。