组合框获得选定值的值,winforms

时间:2013-07-05 10:57:17

标签: .net winforms

我有这样填充的组合框cmbBoxA

private void FillComboBox()
        {
            foreach (var a in Helpers.Helper.GetData())
            {
                cmbBoxA.Items.Add(a);
            }
        }

GetData有这段代码

public static List<VATMode> GetData()
        {
            List<VATMode> vatModes = Enum.GetValues(typeof(VATMode)).
                Cast<VATMode>().ToList();    
            return vatModes;
        }

现在我正在尝试使用

获取所选的组合框项目
int sel = Convert.ToInt16(cmbBoxA.SelectedValue);

但它总是0?

更新: 枚举是

public enum VATMode { A = 1, B = 2, C = 3 };

2 个答案:

答案 0 :(得分:2)

The Enum

public enum Status { Active = 0, Canceled = 3 }; 

从中设置下拉值

cbStatus.DataSource = Enum.GetValues(typeof(Status));

从所选项目中获取枚举

Status status; 

Enum.TryParse<Status>(cbStatus.SelectedValue.ToString(), out status);

我希望它会对你有所帮助.. :)

答案 1 :(得分:1)

当你的ComboBox.SelectedValue是数据绑定而你的ComboBox没有数据包时,会使用

private void FillComboBox() { cmbBoxA.DataSource = Helpers.Helper.GetData(); }

更改您的代码:

VATMode value;
Enum.TryParse<VATMode>(cbStatus.SelectedValue.ToString(), out value);

并获得价值:

int

然后您可以将其投射到{{1}}