Как реализовать «закрыть все вкладки» для tabcontrol - PullRequest
1 голос
/ 19 ноября 2008

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

Ответы [ 4 ]

3 голосов
/ 19 ноября 2008

Я создал небольшое приложение с одним 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--);
    }
1 голос
/ 11 ноября 2014

Попробуйте этот простой код "Закрыть все вкладки".

tabControl.TabPages.Clear()
0 голосов
/ 07 сентября 2017

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

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

    }
0 голосов
/ 04 февраля 2009

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

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