Michael
Michael

Reputation: 13636

Can't get value from ComboBox control

I try to use combobox in winforms project.

Here is my code:

        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;
        }

When I choose item from ComboBox SelectedValueChanged is fired,and id variable gets null.

I need to get value of selected item but I always get null in id variable. Any idea why do I get wrong result and how to fix this code?

Upvotes: 0

Views: 720

Answers (2)

Sergey Berezovskiy
Sergey Berezovskiy

Reputation: 236328

You should use SelectedValue property of combobox to get value, associated with ValueMember (ShapeID in your case):

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

SelectedIndex returns index of item selected in combobox. Also if this handler used for one combobox, you don't need to cast sender - simply use your combobox variable:

var id = cbxSelectShape.SelectedValue;

Upvotes: 1

aaa
aaa

Reputation: 1124

You can get the index of ComboBox this way:

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

Upvotes: 2

Related Questions