是否可以将项目从Enum加载到.NET 3.5中的ComboBox?
答案 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();
}