【问题标题】:Is it possible to load items from an Enum to a ComboBox in .NET 3.5?是否可以将项目从枚举加载到 .NET 3.5 中的组合框?
【发布时间】:2010-04-25 22:13:02
【问题描述】:

是否可以在 .NET 3.5 中将项目从 Enum 加载到 ComboBox?

【问题讨论】:

  • WinForms? ASP.NET? WPF?银光?
  • WinForms,您的解决方案有效。 :D 谢谢

标签: c# .net-3.5 combobox enums


【解决方案1】:

是的。

combobox.DataSource = Enum.GetValues(typeof(SomeEnum));

【讨论】:

  • @Adam:谢谢;你比我快 7 秒。
  • 哦,真好! .NET 中这么有用的东西!
  • 完成答案,得到你做的值 myVariable = (SomeEnum) comboBox1.SelectedValue;
【解决方案2】:

这是我们在最近的一个项目中使用的一些代码。它处理本地化的枚举字符串(通过传入ResourceManager 对象)并直接填充.Items 数组而不是使用数据源——这对于填充ComboBox 很有用,包括在创建之前设置它的.SelectedItem或其父控件可见。

public static void PopulateComboBox<T>(ComboBox box, ResourceManager res) {
    box.FormattingEnabled = true;
    ListControlConvertEventHandler del = delegate(object sender, ListControlConvertEventArgs e) {
        e.Value = res.GetString(e.Value.ToString());
    };
    box.Format -= del;
    box.Format += del;
    box.BeginUpdate();
    box.Items.Clear();
    foreach(T value in Enum.GetValues(typeof(T))) {
        box.Items.Add(value);
    }
    box.EndUpdate();
}

像这样使用它:

PopulateComboBox<MyEnum>(myComboBox, MyEnumStrings.ResourceManager);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多