VB.Net Скрыть вкладку - PullRequest
       2

VB.Net Скрыть вкладку

3 голосов
/ 29 января 2012

Я видел здесь некоторые обсуждения о том, как скрыть вкладки в tabcontrol, но все они, кажется, в C или некотором варианте. Я не видел один для vb.net (я не могу сделать C)

Что я хочу сделать, это скрыть или отключить все некоторые вкладки, пока пользователь не войдет в систему. Я разобрался с логином и выходом из системы. Все, что мне нужно сделать, это добавить код для включения / выключения некоторых вкладок, пока пользователь не войдет в систему.

Кто-нибудь знает хороший способ сделать это?

WinForms кстати

Ответы [ 3 ]

9 голосов
/ 29 января 2012

Вы просто добавляете и удаляете TabPages из TabControl через коллекцию TabPages:

TabControl1.TabPages.Add(myTabPage)

и удаляете ее:

TabControl1.TabPages.Remove(myTabPage)

Примечание. Удаление TabPage не удаляет его, он просто удаляет его из коллекции TabPage.

0 голосов
/ 20 февраля 2015

В настоящее время следующий блок кода отключает все элементы управления на этом TabPage (Sets Control.Enabled = False). Сама вкладка все еще видна и выбирается из TabControl, она не скрыта. Вкладка доступна для выбора, и все элементы отображаются отключенными.

TabMyTab.Enabled = False

Если вы хотите отключить вкладку, аналогичную, например, button.Enabled = False, которая не позволяет использовать элемент управления, вам нужно будет сделать что-то другое, так как отключение TabPage, как в приведенном выше коде, отключает все элементы управления на этой вкладке. Если это то, что вы хотите, продолжайте читать. Многие программисты предлагают использовать TabControl, чтобы запретить выбор вкладки, выбрав другую или ранее выбранную вкладку. Это самый эффективный способ, который я знаю. Я бы реализовал это следующим образом:

Private PreviousTab As New TabPage
Private CurrentTab As New TabPage

Private Sub TabControlName_Deselected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControlName.Deselected
        PreviousTab = e.TabPage
End Sub

Private Sub TabControlName_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControlName.Selected
        CurrentTab = e.TabPage
        If (PreviousTab.Name <> CurrentTab.Name) And (CurrentTab.Name = UnselectableTab.Name) Then
            MessageBox.Show("Tab disabled.", "Selection Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            TabControlName.SelectedTab = PreviousTab
        End If
End Sub

Замените ваши собственные значения для "UnselectableTab" и "TabControlName" для вашего проекта.

0 голосов
/ 29 января 2012

Просто скройте весь TabControl, установив его Visible свойство

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