无法从组合框控件获取值

本文关键字:控件 获取 组合 | 更新日期: 2023-09-27 17:55:52

我尝试在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;
        }

当我从组合框选择项目时,激活了 SelectedValueChanged并且 id 变量变为

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

无法从组合框控件获取值

你可以这样获取ComboBox的索引:

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

您应该使用 combbobox 的 SelectedValue 属性来获取与 ValueMember 关联的值(在您的例子中为 ShapeID):

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

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

var id = cbxSelectShape.SelectedValue;