0

在表单加载时,我将枚举加载到组合框中

private void Form2_Load(object sender, EventArgs e)
{
    List<VATMode> vatModes = Enum.GetValues(typeof(VATMode)).
         Cast<VATMode>().ToList();           
    cmbVatMode.DataSource = vatModes;
}

现在我想将cmbVatMode(下拉列表)中的值分配给我的枚举属性MyCustomVatMode

我试过了,MyCustomVatMode = cmbVatMode.SelectedValue;但它不起作用。

4

1 回答 1

1

如果设置DataSource为列表VATModeSelectedValue将返回对象类型的引用。可以成功地投射到您的枚举中。下一个代码演示了这一点。

VATMode MyCustomVatMode = (VATMode)cmbVatMode.SelectedValue;

例如,每次更改组合框时,下一个代码都会打印到控制台枚举:

cmbVatMode.SelectedValueChanged += (s, a) => 
{
    VATMode selected = (VATMode)cmbVatMode.SelectedValue;
    Console.WriteLine(selected);
};
于 2013-06-06T07:41:54.160 回答