Из коробки ничего подобного нет. Все события, связанные с изменением в поле со списком, происходят после того, как новое значение уже выбрано. В этот момент невозможно определить, какое значение ИСПОЛЬЗУЕТСЯ. Тебе лучше всего делать то, к чему ты стремился. Как только ваш ComboBox заполнится, сохраните SelectedItem во временную переменную. Затем подключитесь к событию SelectedValueChanged. В этот момент ваша временная переменная будет вашим старым значением, а SelectedItem будет вашим текущим значением.
private object oldItem = new object();
private void button3_Click(object sender, EventArgs e)
{
DateTime date = DateTime.Now;
for (int i = 1; i <= 10; i++)
{
this.comboBox1.Items.Add(date.AddDays(i));
}
oldItem = this.comboBox1.SelectedItem;
}
private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
{
//do what you need with the oldItem variable
if (oldItem != null)
{
MessageBox.Show(oldItem.ToString());
}
this.oldItem = this.comboBox1.SelectedItem;
}