To delete a tabpage, you use the tabControl1.Controls.Remove method. To add a new page as the last tab, use the tabControl1.Controls.Add method. Here is some sample code.
// remove the selected tab
tabControl1.Controls.Remove( tabControl1.SelectedTab );
//add a new tabpage as the last tab
tabControl1.Controls.Add( new TabPage( "new Page" ) );
There does not appear to be support in the framework for inserting a tab at a particular position. A work around might be to save the current tabpage controls, clear the Controls collection, and then add the saved controls back to the Controls collection inserting a new tab. Here is some code that does this.
private void InsertTab( int tabNumber, ref TabControl tabControl )
{
int limit = tabControl.Controls.Count;
if ( tabNumber < 0 || tabNumber > limit )
{
tabControl.Controls.Add( new TabPage( "new Page" ) );
return;
}
int target = tabControl.SelectedIndex;
// save the exisiting pages & clear the controls
Control [] c = new Control[ limit ];
tabControl.Controls.CopyTo( c, 0 );
tabControl.Controls.Clear();
// add the earlier pages
for ( int i = 0; i < target; ++i )
tabControl.Controls.Add( c[ i ] );
// insert the page
tabControl.Controls.Add( new TabPage( "new Page" ) );
// add the later pages
for ( int i = target; i < limit; ++i )
tabControl.Controls.Add( c[ i ] );
// select the new page
tabControl.SelectedIndex = target;
}
Contributed from George Shepherd's Windows Forms FAQ