/// <summary> /// Closes the tab with the provided name if present. /// </summary> /// <param name="name"></param> public void CloseTab(string name) { for (int i = 0; i < TabControl.TabCount; i++) { TabPage tabPage = TabControl.TabPages[i]; if (tabPage.Text == name) { var closingTabPage = TabControl.TabPages[i]; TabControl.SelectedIndex = -1; TabControl.TabPages.Remove(closingTabPage); if (TabControl.TabCount > 0) { if (TabControl.TabCount > i) { TabControl.SelectedIndex = i; } else { TabControl.SelectedIndex = i - 1; } } DisplayTabClosed?.Invoke(closingTabPage.Text, TabControl.TabCount); break; } } }
/// <summary> /// Closes all tabs. /// </summary> public void CloseTabs() { for (int i = 0; i < TabControl.TabCount; i++) { var closingTabPage = TabControl.TabPages[0]; TabControl.TabPages.Remove(closingTabPage); DisplayTabClosed?.Invoke(closingTabPage.Text, TabControl.TabCount); } }