Strange. I get the behavior you mentioned when the control is bound to a datasource, but not when I populate the Items collection manually:
private void comboBox1_TextChanged(object sender, System.EventArgs e)
{
MessageBox.Show(this.comboBox1.Text);
}
private void Form1_Load(object sender, System.EventArgs e)
{
this.comboBox1.Items.AddRange(new string[] {"Item 1","Item 2","Item 3","Item 4"});
}