Is it possible to set the selectedIndex of a combobox based on its value

Bildsoe picture Bildsoe · Feb 21, 2011 · Viewed 20.3k times · Source

Is it possible to set the selectedIndex of a combobox based on its value, without having to iterate through the datasource?

I set the datasource like this:

caseDBTableAdapters.usersTableAdapter usersAdapter = new caseDBTableAdapters.usersTableAdapter();
            caseDB.usersDataTable users;
            users = usersAdapter.GetUsers();

            cbOwner.DisplayMember = "fullName";
            cbOwner.ValueMember = "userId";
            cbOwner.DataSource = users;

It seems less elegant to have to iterate through the table fx. by doing:

int counter = 0;
            foreach (caseDB.usersRow usersRow in users)
            {

                if (usersRow.userId == selectedUser)
                {

                    cbOwner.SelectedIndex = counter;

                }
                counter++;
            }

Answer

Adrian Serafin picture Adrian Serafin · Feb 21, 2011

Try assing

comboBox.SelectedValue = "value";

or

comboBox.SelectedItem = item;

After question edit:

Set SelectedValue to selectedUser:

cbOwner.SelectedValue = selectedUser;