В C# как я могу уничтожить вкладку в элементе управления табуляции, указав его имя? У меня есть вкладка с именем «Привет!». и я хотел бы закрыть его программно. Там нет гарантии, что это будет выбранная вкладка в то время.Как закрыть вкладку tabcontrol по имени вкладки
ответ
Класс TabControl
содержит TabPages
property, который возвращает TabPageCollection
, содержащий все TabPages
в элементе управления.
Таким образом, вы можете использовать Item
property для извлечения TabPage
с указанным именем.
Например, если страница вкладки вы хотите называется "Hello!", Можно было бы написать:
var tabPage = myTabControl.TabPages["Hello!"];
Чтобы удалить TabPage
из-под контроля, используйте RemoveByKey
method:
myTabControl.TabPages.RemoveByKey("Hello!");
Конечно, для того, чтобы это сработало, вам нужно убедиться, что вы установили ключи своего TabPage
s в соответствие с отображаемым текстом субтитров.
Вы можете попробовать что-то вроде этого: «Здравствуйте!»
for (int i = tabControl1.TabPages.Count - 1; i >= 0; i--) {
if (tabControl1.TabPages[i].Text == "Hello!")
tabControl1.TabPages[i].Dispose();
}
Я предполагаю, что вы имели в виду «Текст» в TabPage, так как не будет действительным именем для элемента управления.
Примечание: в этом коде будет храниться любая вкладка, в которой говорится: «Привет!».
Утилизирует вкладку, пока она еще добавлена в tabcontrol - хорошая идея? – Blorgbeard
@Blorgbeard Я не думаю, что есть какая-то опасность. Удаление этого не избавляет от него, и ОП сказал, что хочет, чтобы он «уничтожился». – LarsTech
Удалите затем утилиту. Думаю – sambomartin
, что было быстро, избили меня! – sambomartin
Спасибо Коди! Глядя на ответ LarsTech, должен ли я распоряжаться им, а не удалять его ради памяти? – atwellpub
@atw Я бы сделал то и другое, просто чтобы быть в безопасности. Сначала удалите его, затем утилизируйте. Но вы можете просто избавиться от него (ссылка [http://stackoverflow.com/questions/1757116/remove-tabpage-dispose-or-clear-or-both)). –