It is not a best way, apparently, even if you did not make a mistake in it. You are looking for a control to be removed, right? Make a reference to it a tag after creation. A tag of what? Of something which is already known at the moment of the click: the button. For example:
ComboBox aComboBoxToBeRemovedLater = new ComboBox();
Button aRemovingButton = new Button();
aRemovingButton.Text = "&Remove";
aRemovingButton.Tag = aComboBoxToBeRemovedLater;
aRemovingButton.Click += (sender, eventArgs) => {
Button thisButton = (Button)sender;
Control controlToRemove = (Control)thisButton.Tag;
thisButton.Parent.Controls.Remove(controlToRemove);
}
—SA