How to Hide Tabpage from Tabcontrol

How to hide TabPage from TabControl

No, this doesn't exist. You have to remove the tab and re-add it when you want it. Or use a different (3rd-party) tab control.

Hiding TabPage from TabControl in Winform application

Try This. It will hide and show the TabPages without a Control lost.

Hide TabPage and Remove the Header:

this.tabPage1.Hide();
this.tabPage3.Hide();
this.tabPage5.Hide();
tabControl1.TabPages.Remove(tabPage1);
tabControl1.TabPages.Remove(tabPage3);
tabControl1.TabPages.Remove(tabPage5);

Show TabPage and Visible the Header:

tabControl1.TabPages.Insert(0,tabPage1);
tabControl1.TabPages.Insert(2, tabPage3);
tabControl1.TabPages.Insert(4, tabPage5);
this.tabPage1.Show();
this.tabPage3.Show();
this.tabPage5.Show();
tabControl1.SelectedTab = tabPage1;

Hiding and Showing TabPages in tabControl

You could remove the tab page from the TabControl.TabPages collection and store it in a list. For example:

    private List<TabPage> hiddenPages = new List<TabPage>();

private void EnablePage(TabPage page, bool enable) {
if (enable) {
tabControl1.TabPages.Add(page);
hiddenPages.Remove(page);
}
else {
tabControl1.TabPages.Remove(page);
hiddenPages.Add(page);
}
}

protected override void OnFormClosed(FormClosedEventArgs e) {
foreach (var page in hiddenPages) page.Dispose();
base.OnFormClosed(e);
}

Disable and hide a TabPage

You maybe missing the obvious because neither of the following removes/changes the look of the tab

        tabPage1.Enabled = false; // this disables the controls on it
tabPage1.Visible = false; // this hides the controls on it.

Neither remove the tab from the list at the top.

What does TabPage.Hide() do?

The reason is stated on MSDN as

TabPage controls are constrained by their container, so some of the
properties inherited from the Control base class will have no effect,
including Top, Height, Left, Width, Show, and Hide.

The tabs in a TabControl are part of the TabControl but not parts of
the individual TabPage controls. Members of the TabPage class, such as
the ForeColor property, affect only the client rectangle of the tab
page, but not the tabs. Additionally, the Hide method of the TabPage
will not hide the tab. To hide the tab, you must remove the TabPage
control from the TabControl.TabPages collection.

Hide Tab Header on C# TabControl

You can replace tabcontrol with a hand made panel that mimic like you want:

class MultiPagePanel : Panel
{
private int _currentPageIndex;
public int CurrentPageIndex
{
get { return _currentPageIndex; }
set
{
if (value >= 0 && value < Controls.Count)
{
Controls[value].BringToFront();
_currentPageIndex = value;
}
}
}

public void AddPage(Control page)
{
Controls.Add(page);
page.Dock = DockStyle.Fill;
}
}

And then add pages and set current visible page:

MultiPagePanel p;

// MyTabPage is a Control derived class that represents one page on your form.
MyTabPage page = new MyTabPage();
p.AddPage(page);

p.CurrentPageIndex = 0;

How to hide tab pages in a tab control

According to Hiding and Showing Tabpages in a Tabcontrol by Debasmit Samal:

Visiblity property has not been implemented on the TabControl, and
there is no Insert method also. Some workaround on this

private void HideTabPage(TabPage tp)
{
if (tabControl1.TabPages.Contains(tp))
tabControl1.TabPages.Remove(tp);
}

private void ShowTabPage(TabPage tp)
{
ShowTabPage(tp, tabControl1.TabPages.Count);
}

private void ShowTabPage(TabPage tp , int index)
{
if (tabControl1.TabPages.Contains(tp)) return;
InsertTabPage(tp, index);
}

private void InsertTabPage(TabPage tabpage, int index)
{
if (index < 0 || index > tabControl1.TabCount)
throw new ArgumentException("Index out of Range.");
tabControl1.TabPages.Add(tabpage);
if (index < tabControl1.TabCount - 1)
do
{
SwapTabPages(tabpage, (tabControl1.TabPages[tabControl1.TabPages.IndexOf(tabpage) - 1]));
}
while (tabControl1.TabPages.IndexOf(tabpage) != index);
tabControl1.SelectedTab = tabpage;
}

private void SwapTabPages(TabPage tp1, TabPage tp2)
{
if (tabControl1.TabPages.Contains(tp1) == false || tabControl1.TabPages.Contains(tp2) == false)
throw new ArgumentException("TabPages must be in the TabControls TabPageCollection.");

int Index1 = tabControl1.TabPages.IndexOf(tp1);
int Index2 = tabControl1.TabPages.IndexOf(tp2);
tabControl1.TabPages[Index1] = tp2;
tabControl1.TabPages[Index2] = tp1;

//Uncomment the following section to overcome bugs in the Compact Framework
//tabControl1.SelectedIndex = tabControl1.SelectedIndex;
//string tp1Text, tp2Text;
//tp1Text = tp1.Text;
//tp2Text = tp2.Text;
//tp1.Text=tp2Text;
//tp2.Text=tp1Text;

}

VB.Net Hide Tabpage

You just add and remove TabPages from the TabControl through the TabPages collection:

TabControl1.TabPages.Add(myTabPage)

and to remove it:

TabControl1.TabPages.Remove(myTabPage)

Note: Removing a TabPage does not dispose it, it just removes it from the TabPage collection.

c# Hide tabpages in foreach loop

You have to remove the page to hide it and re-add it to make it visible once more. Please see How to hide TabPage from TabControl



Related Topics



Leave a reply



Submit