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

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

是。

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

这是我们在最近的一个项目中使用的一些代码。 它处理本地化的Enum字符串(通过传入ResourceManager对象)并直接填充.Items数组而不是使用DataSource – 这对于填充ComboBox很有用,包括设置它的.SelectedItem ,然后才能使它或它的父控件可见。

 public static void PopulateComboBox(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(myComboBox, MyEnumStrings.ResourceManager);