我尝试在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。 知道为什么我会得到错误的结果以及如何修复此代码?
答案 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;