Pues es cierto, no puedes cambiar el texto mostrado en ninguno de los eventos de cambio de elemento (SelectedIndexChanged, SelectValueChanged, SelectionChangeCommitted), porque aunque lo cambia, al volver del evento y redibujarlo, vuelve fijar el que le corresponde.
No se muy bien cual es el motivo de que quieras hacer esto, pero se me ocurren dos soluciones:
Si solo es un mensaje el que necesitas mostrar, añades un item mas al DataSource con la descripcion que quieras mostrar y cambiar el SelectedIndex del combo para mostrar ese mensaje.
La otra es la que te decia antes, cambiar el valor del elemento seleccionado a el texto que quieras mostrar. Suponiendo que el dataSource del combo es una DataTable:
Código:
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
Form1 frm = new Form1();
if (frm.ShowDialog() == DialogResult.OK)
{
DataRowView row = (DataRowView)comboBox1.Items[comboBox1.SelectedIndex];
row["Name"] = "Valor cambiado";
}
}
Si haces esto ultimo asegurate de usar el evento que ves aqui arriba, si usas selectedValueChanged se metera en un bucle sin fin, con el consiguiente "stack overflow".