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

时间:2010-04-25 22:13:03

标签: c# .net-3.5 combobox enums

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

2 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:0)

这是我们在最近的项目中使用的一些代码。它处理本地化的Enum字符串(通过传入ResourceManager对象)并直接填充.Items数组而不是使用DataSource - 这对于填充ComboBox非常有用,包括设置其{ {1}},在使其或其父控件可见之前。

.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();
}