I'm looking for an efficient manner in which to handle (methods and events of controls) dynamically created tab pages with dynamically created controls in them (same interface per tab page).

I want to be able to identify what tab page, a button's Click event came from and such behavior.

Would I be set by using a generic collection list in which to store the tab pages in? Where and in what am I looking to hold the references for each individual control, along with their methods and events? Am I also looking to hold the references for each individual control in generic collections lists? I'm hoping to avoid the User Control TabPage inheritance method. Is that going to end up being the most efficient route I'm going to have to take?