




Я сделал небольшое приложение с одним элементом управления вкладками в главном окне и контекстным меню, подключенным к этому элементу управления вкладками.
Ниже приведен обработчик пункта контекстного меню:
private void closeAllOtherToolStripMenuItem_Click(object sender, EventArgs e)
{
for (int i = 0; i < this.tabControl1.TabCount; i++)
if (i != tabControl1.SelectedIndex)
tabControl1.TabPages.RemoveAt(i--);
}
Прежде чем вы «закроете все» свои вкладки, вы должны избавиться (и удалить обработчики событий) от любых элементов управления / объектов, которые вы создали на каждой странице вкладок. Кроме того, вы можете использовать метод .Clear коллекции TabPages вместо удаления каждой страницы вкладки в цикле.
Попробуйте этот простой код, чтобы «закрыть все вкладки».
tabControl.TabPages.Clear()
Следующий код закрывает все вкладки и перед закрытием обеспечивает сохранение содержимого вкладок.
private void closeAllToolStripMenuItem_Click(object sender, EventArgs e)
{
TabControl.TabPageCollection pages = tabControl1.TabPages;
foreach (TabPage page in pages)
{
saveToolStripMenuItem_Click(sender, e);
closeTabToolStripMenuItem_Click(sender, e);
}
}
Это дублирование: stackoverflow.com/questions/301116/…