【问题标题】:How to hide tab pages in a tab control如何在选项卡控件中隐藏选项卡页
【发布时间】:2014-02-06 05:16:58
【问题描述】:

我是 C# 的学习者,我有一点疑问。

在我的 windows 表单页面中,我有一个包含 3 个 tabPages 的 tabControl。我在 tabControl 之外还有一个组合框,其中包含列出标签页名称的 3 个项目。

我想要做的是从组合框中选择第一个 tabPage 的名称,并且只有那个 tabPage 应该通过隐藏其他 tabPages 来显示。

Visibility 属性不适用于 tabPages。那我该怎么做呢?

提前致谢。

【问题讨论】:

    标签: tabcontrol


    【解决方案1】:

    根据Hiding and Showing Tabpages in a Tabcontrol by Debasmit Samal

    Visiblity 属性尚未在 TabControl 上实现,并且 也没有 Insert 方法。一些解决方法

    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;
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多