Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/19: Рейтинг темы: голосов - 19, средняя оценка - 4.58
118 / 107 / 17
Регистрация: 10.02.2013
Сообщений: 278
1
.NET 4.x

Как программно скрыть или отобразить вкладки в TabControl

29.08.2013, 16:21. Показов 3449. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
добавил TabControl, на нем пару вкладок, на первой вкладке ПрогрессБар, при запуске программы запускается таймер, интервал секунда,
событие Timer1.Tick
VB.NET
1
2
3
4
Private Sub Timer1_Tick(s, e) Handles Timer1.Tick
ProgressBar1.Value += 1
Me.Text = ProgressBar1.Value
End Sub
то есть каждую секунду значение прогрессбара увеличивается на 1 и это значение выводится в заголовок формы.
Удаляю первую вкладку TabControl1.TabPages.RemoveAt(0) или так TabPage1.Dispose.
Также потом вывожу TagPage1.Text, и выводит "TagPage1", то есть вкладка осталась!
И после удаления прогрессбар никуда не пропал, в заголовке формы все равно идет увеличение числа, и значение прогрессбара ProgressBar1.Created изменилось с true на false
Интересует следующее, как при удалении вкладки можно было ее восстановить? так как свойства Visible у TabPage нету.


Это потребовалось для того, что есть сторонний TabControl и в нем нельзя "листать" вкладки, то есть при заполнении, скажем, 20 вкладок, остальные уходят вниз и их не видно и листать нельзя, и никаких свойств типа AutoScroll нету.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.08.2013, 16:21
Ответы с готовыми решениями:

Как программно скрыть или отобразить вкладки в TabControl
Друзья, появилась еще одна задачка! Как в visual basic скрыть отобразить одну из вкладок...

Как программно отобразить или скрыть детали в листе с группами?
Возник вопросик: Как программно отобразить или скрыть детали в листе с группами? Спасибо заранее.

Отобразить окно или скрыть программно
<Window x:Class="language_switcher.MainWindow" ...

Скрыть вкладки в TabControl
Как можно программно у TabControl создавать или скрывать (на подобие команды Visible) TabPages......

5
Почетный модератор
21413 / 9147 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
29.08.2013, 17:09 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Коряво конечно, но может, хранить вкладки в коллекции?
Примерный принцип: Записываем все в коллекцию, меняем свойство Tag, очищаем табконтрол, перестраиваем вкладки, по условию.
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    Dim TP As New List(Of TabPage)
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TP(2).Tag = "Unvisible"
        TabControl1.TabPages.Clear()
        For Each T As TabPage In TP
            If T.Tag <> "Unvisible" Then
                TabControl1.TabPages.Add(T)
            End If
        Next
    End Sub
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For Each T As TabPage In TabControl1.TabPages
            TP.Add(T)
        Next
    End Sub
1
834 / 642 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.08.2013, 17:10 3
Цитата Сообщение от Leksar Посмотреть сообщение
Удаляю первую вкладку TabControl1.TabPages.RemoveAt(0) или так TabPage1.Dispose.
Это принципиально разные вещи. Первое убирает вкладку из коллекции, но как объект она ещё жива, а второе её уничтожет.

Цитата Сообщение от Leksar Посмотреть сообщение
так как свойства Visible у TabPage нету
Visible - это свойство Control'а, значит у TabPage оно есть...
Другое дело, что оно скрыто из автодополнения и работает не так как ты ожидаешь

Цитата Сообщение от Leksar Посмотреть сообщение
Это потребовалось для того, что есть сторонний TabControl и в нем нельзя ...
Тогда с ним и надо разбираться.

Цитата Сообщение от Leksar Посмотреть сообщение
как при удалении вкладки можно было ее восстановить?
Сохранить в переменную перед Remove, а потом добавить обратно.
1
118 / 107 / 17
Регистрация: 10.02.2013
Сообщений: 278
29.08.2013, 17:48  [ТС] 4
всем спасибо, еще вариант
VB.NET
1
2
TabPage1.Parent = Nothing
TabPage1.Parent = TabControl1
Добавлено через 15 минут
Цитата Сообщение от Памирыч Посмотреть сообщение
Коряво конечно, но может, хранить вкладки в коллекции?
у меня весь код корявый, но работает же! так что это не беда)
2
834 / 642 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
29.08.2013, 17:57 5
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Leksar Посмотреть сообщение
всем спасибо, еще вариант
VB.NET
1
2
TabPage1.Parent = Nothing
TabPage1.Parent = TabControl1
Хороший вариант - то же, что я предлагал, только более красиво записано
1
Почетный модератор
21413 / 9147 / 1083
Регистрация: 11.04.2010
Сообщений: 11,014
29.08.2013, 18:13 6
Цитата Сообщение от Leksar Посмотреть сообщение
всем спасибо, еще вариант
Интересный вариант

А я-то пытался добиться сохранения порядка вкладок и возможность спрятать их неограниченное количество.
А надо то было для одной и гораздо проще
0
29.08.2013, 18:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.08.2013, 18:13
Помогаю со студенческими работами здесь

Как программно скрыть/показать созданные в конструкторе вкладки TabPages
Собственно в названии все понятно. почемуто свойства Show и Hide не хотят этого делать. ...

Программно добавить вкладки в TabControl
Приветствую всех еще раз. На форме расположен TabControl. подскажите, пожалуйста, Уважаемые...

Как отобразить кнопку поверх остальных элементов или поверх tabPage или поверх tabControl?
Как отобразить кнопку поверх остальных элементов или поверх tabPage или поверх tabControl? ...

Скрыть вкладку TabControl или все ее содержимое
Добрый день, Господа. Что то не могу найти легкого решения, по средствам опции, как я читал в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru