无法从ComboBox控件获取值

时间:2013-01-24 13:46:28

标签: c# winforms combobox

我尝试在winforms项目中使用combobox。

这是我的代码:

        private void ShowContoursForm_Load(object sender, EventArgs e)
        {
           cbxSelectShape.DisplayMember = dataSetObject.ObjectShapes.ShapeNameColumn.ColumnName;
           cbxSelectShape.ValueMember = dataSetObject.ObjectShapes.ShapeIDColumn.ColumnName;
           cbxSelectShape.DataSource = dataSetObject.ObjectShapes;
        }


        private void cbxSelectShape_SelectedValueChanged(object sender, EventArgs e)
        {
           var id= (int)cbxSelectShape.SelectValue;
        }

当我从ComboBox中选择项目 SelectedValueChanged 时会被触发,而 id 变量会获得 null

我需要获取所选项的值,但我总是在id变量中得到null。 知道为什么我会得到错误的结果以及如何修复此代码?

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式获取ComboBox的索引:

private void cbxSelectShape_SelectedValueChanged(object sender, EventArgs e)
    {
       var id= ((ComboBox)sender).SelectedIndex;
    }

答案 1 :(得分:1)

您应该使用组合框的SelectedValue属性获取与ValueMember相关联的值(在您的情况下为 ShapeID ):

var id = ((ComboBox)sender).SelectedValue;

SelectedIndex返回在组合框中选择的项目的索引。此外,如果此处理程序用于一个组合框,则不需要转发发送者 - 只需使用您的组合框变量:

var id = cbxSelectShape.SelectedValue;