创建的下拉菜单中选择,从枚举中的一个条件
-
09-06-2019 - |
题
我现在有一个类和我在试图创建一个简单的图形用户界面,创建一个收集这一类。大多数的属性的这类串。然而,一个属性,我想让用户能够设置为一枚举。因此,我想用户界面,有一个下拉列表对这枚举,限制用户进入价值,是不是有效的。目前,我正在采取的初步名单的对象,把它们添加到一的数据表和设置数据源的我的条件下表。很好地工作,甚至创建一个框列为一个布尔的财产。但是,我不知道如何使列枚举成一下拉列表.我使用的C#。网2.0.
此外,我们试图分配的数据源的条件以列表我的对象,但是当我这样做,它不会帮助枚举,我无法创造新的行中的条件,但是我是绝对不能使用一个数据表,作为我的数据源,这只是选择我有半工作。
解决方案
我不知道如果这会的工作有一个条件列,但它与工作组合框:
comboBox1.DataSource = Enum.GetValues(typeof(MyEnum));
并且:
MyEnum value = (MyEnum)comboBox1.SelectedValue;
更新:它适用条件列也只记得的值设置的类型。
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.Name = "My Enum Column";
col.DataSource = Enum.GetValues(typeof(MyEnum));
col.ValueType = typeof(MyEnum);
dataGridView1.Columns.Add(col);
其他提示
或者,如果你需要做一些过滤的数值,就可以循环 Enum.GetValues(typeof(EnumeratorName))
并添加那些你想要的使用:
dataGridViewComboBoxColumn.Items.Add(EnumeratorValue)
作为一个一旁,而不是使用一个数据表,可以设置数据源的条件对一个BindingSource对象,有的数据源的BindingSource目的设置一个 BindingList<Your Class>
, 你填充通过一个 IList
成本构造。
实际上,我会有兴趣知道,从任何人如果这是最好采用一个数据表的情况下,你已经没有一个(即这是返回的一个数据库呼叫)。
if(e.KeyCode == Keys.Oem3)
{
}
这个工作对我来说
不隶属于 StackOverflow