Works for me:
public class MyObject
{
public string Text { get; set; }
public int Value { get; set; }
}
private void MyButton_Click(object sender, EventArgs e)
{
MyObject[] data = new MyObject[] {new MyObject(){Text = "abc", Value = 1},
new MyObject(){Text = "def", Value = 2},
new MyObject(){Text = "ghi", Value = 3}};
myComboBox.DataSource = data;
myComboBox.ValueMember = "Value";
myComboBox.SelectedValue = 2;
Or
myComboBox.SelectedItem = data[1];
Or
myCOmboBox.SelectedText = "abc";
So what am I doing that is different to you?