So what's the "correct" way to do this?
Clearing the entire array can usually be accomplished easily, but what if you want to remove only items matching some condition?
Looping backwards, perhaps?
for ( int i=this.MyControl.TabPages.Count-1 ; i >= 0 ; i-- )
{
this.MyControl.TabPages.Remove ( this.MyControl.TabPages[i] );
}