0

我尝试在 winforms 项目中使用组合框。

这是我的代码:

        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 变量中得到空值。知道为什么我会得到错误的结果以及如何修复此代码吗?

4

2 回答 2

2

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

private void cbxSelectShape_SelectedValueChanged(object sender, EventArgs e)
    {
       var id= ((ComboBox)sender).SelectedIndex;
    }
于 2013-01-24T13:55:38.960 回答
1

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

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

SelectedIndex返回组合框中所选项目的索引。此外,如果此处理程序用于一个组合框,则无需强制转换发件人 - 只需使用您的组合框变量:

var id = cbxSelectShape.SelectedValue;
于 2013-01-24T14:16:28.320 回答