Lots of good solutions here !
An out-of-the-box idea (
requires a reference to Linq): based on the assumption that the when the OP says "I'm using a drop-down list" as the source of new items he means: there is a ComboBox which is the source of new items for a ListBox.
0. pre-parse the ComboBox Items and eliminate duplicates ... if there could be duplicates.
List<object> noDup = comboBox1.Items.Cast<object().Distinct().ToList();
comboBox1.Items.Clear();
noDup.ForEach(itm => comboBox1.Items.Add(itm));
1. every time the user selects one item from the ComboBox drop-down to add, remove that item from the ComboBox items
private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
{
listBox1.Items.Add(comboBox1.SelectedItem);
comboBox1.Items.Remove(comboBox1.SelectedItem);
}
And, yes, I do think end-users might find it a bit strange that the ComboBox Items' list 'shrinks' as they make selections to populate the ListBox :)