Удалить вкладку из вкладок из текущей вкладки - PullRequest
0 голосов
/ 09 марта 2012

У меня есть tabcontrol из моей основной формы, в который я также добавляю пользовательские элементы управления.Я хочу иметь возможность удалить вкладку из коллекции изнутри себя.Может быть, поставить немного х в углу.Как ты думаешь, как мне поступить?

Вот так я добавляю вещи в элемент управления TabPage.

Ответы [ 6 ]

2 голосов
/ 09 марта 2012

Я обычно так поступаю, добавляя кнопку, которая закрывает выбранную вкладку.Используйте событие нажатия на кнопку для запуска кода:

this.tbRooms.TabPages.RemoveAt(this.tabcontroller.SelectedIndex);

Вы можете выбрать, на какой вкладке сосредоточиться после закрытия, в этом примере будет выбрана последняя вкладка в контроллере:

this.tbRooms.SelectedIndex = this.tbRooms.TabCount-1;

Я не уверен, как добавить кнопку X на фактический контроллер вкладок, возможно, довольно сложно.

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

1 голос
/ 28 октября 2016

Я столкнулся с той же проблемой в данный момент и решил ее с помощью события mouse_click. Когда пользователь щелкнет правой кнопкой мыши на вкладке, она будет удалена. Это моя ссылка Изменить выбранную вкладку TabControl на MouseOver

private void tabControl1_MouseClick(object sender, MouseEventArgs e)
    {             
        if (e.Button == System.Windows.Forms.MouseButtons.Right)
        {
            Rectangle mouseRect = new Rectangle(e.X, e.Y, 1, 1);
            for (int i = 0; i < tabControl1.TabCount; i++)
            {
                if (tabControl1.GetTabRect(i).IntersectsWith(mouseRect))
                {
                    tabControl1.TabPages.RemoveAt(i);
                    break;
                }
            }     
        }   
    }
1 голос
/ 16 июня 2015

следующий параметр будет очень просто спрятать нужные вкладки вместо удаления страниц и элементов управления определенного параметра.После скрытия вы не сможете выбрать, поэтому проблема решена.

this.viewRibbonPage1.Visible = false;

1 голос
/ 20 февраля 2013

вместо этого используйте метод удаления вкладок, который прекрасно работает как со статическими, так и с динамическими вкладками.

1 голос
/ 09 марта 2012

Если вы называете свои вкладки, вы также можете удалить их по ключу (то есть: имя)

myTabPage.name = "WhateverTab";

MyTabControl.TabPages.RemoveByKey("WhateverTab");

или по индексу

MyTabControl.TabPages.RemoveAt(2);

для удаления третьей вкладки в элементе управления

1 голос
/ 09 марта 2012

Поместите туда кнопку "x", назначьте ей событие, затем в событии click нажмите что-то вроде этого:

tbRooms.TabPages.Remove(tbRooms.SelectedTab);

Нечто подобное должно работать.

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