System.Windows.Forms.TabControl.ControlCollection.Remove C# (CSharp) Method

Remove() public method

public Remove ( Control value ) : void
value Control
return void
			public override void Remove (Control value)
			{
				bool change_index = false;
				
				TabPage page = value as TabPage;
				if (page != null && owner.Controls.Contains (page)) {
					int index = owner.IndexForTabPage (page);
					if (index < owner.SelectedIndex || owner.SelectedIndex == Count - 1)
						change_index = true;
				}
				base.Remove (value);
				owner.m_helper.Remove(page);				
				// We don't want to raise SelectedIndexChanged until after we
				// have removed from the collection, so TabCount will be
				// correct for the user.
				if (change_index && Count > 0) {
					// Clear the selected index internally, to avoid trying to access the previous
					// selected tab when setting the new one - this is what .net seems to do
					int prev_selected_index = owner.SelectedIndex;
					owner.selected_index = -1;

					owner.SelectedIndex = --prev_selected_index;
					owner.Invalidate ();
				} else if (change_index) {
					owner.selected_index = -1;
					owner.OnSelectedIndexChanged (EventArgs.Empty);
					owner.Invalidate ();
				} else
					owner.Redraw ();
			}
		}
TabControl.ControlCollection