2008-11-19 3 views
1

Как бы реализовать функцию «закрыть все остальные вкладки» для элемента управления вкладкой, используя полосу контекстного меню?Как реализовать «закрыть все вкладки» для tabcontrol

+0

Это DUP из: HTTP: //stackoverflow.com/questions/301116/how-to-handle-close-other-tabs-in-contextmenustrip – 2008-11-19 06:04:31

ответ

3

Я сделал небольшое приложение с одним tabcontrol в главном окне и контекстным меню, подключенным к этому tabcontrol.

Ниже приведен обработчик пункта контекстного меню:

 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--); 
    } 
0

Перед тем, как «закрыть все» ваши закладки, вы должны утилизировать (и удалять обработчики событий) каких-либо элементов управления/объектов вы были экземпляры в каждом закладка. Кроме того, вы можете использовать метод .Clear для коллекции TabPages вместо удаления каждой закладки в цикле.

1

Попробуйте этот простой код, чтобы «закрыть все вкладки».

tabControl.TabPages.Clear() 
0

Следующий код закрывает все вкладки, и перед закрытием он гарантирует, что содержимое вкладок будет сохранено.

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); 
     } 

    } 
Смежные вопросы