如何在c#中隐藏选项卡标题?

时间:2014-01-13 20:05:43

标签: c# combobox tabs

我对C#更新鲜。我有一个疑问,请任何人澄清我。

首先,当我点击第一个表单中的按钮时,默认情况下应该只打开一个新表单(基本上这个表单将有3个选项卡)。

在默认标签中,我将有一个comboBox,其中包含2个项目的列表。如果我选择了特定项目,则应在旁边显示相应的选项卡 默认选项卡。

我已经做了所有事情,但我没有得到如何隐藏除默认选项卡以外的选项卡,以及如何在从组合框中选择项目时显示相应的选项卡。请帮我。

提前谢谢。

4 个答案:

答案 0 :(得分:0)

TabControl有多个TabPages,每个TabPages都有Visible属性。

(假设您使用的是WinForms)

答案 1 :(得分:0)

TabPage没有Visible属性,您必须删除该选项卡然后再添加它,这是一段简单的代码:

 private void Form1_Load(object sender, EventArgs e)
        {

            List<int> myList = new List<int>() {1,2,3,4,5 };
            listBox1.DataSource = myList;


            foreach (var item in tabControl1.TabPages)
            {
                MyTabPages.Add(item as TabPage);
            }

        }

        List<TabPage> MyTabPages = new List<TabPage>();


        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (MyTabPages.Count == 0)
            {
                return;
            }

            Int32 Index = listBox1.SelectedIndex;
            if (Index >= 0 && Index <= MyTabPages.Count - 1)
            {
                if(tabControl1.TabPages.IndexOf(MyTabPages[Index]) < 0)
                {
                    tabControl1.TabPages.Add(MyTabPages[Index]);
                }
                else
                {
                    tabControl1.TabPages.Remove(MyTabPages[Index]);
                }
            }
        }

我希望这有帮助。

答案 2 :(得分:0)

这些方法可以帮助您:

public void ShowTab(TabControl tabs, TabPage page)
{
    tabs.TabPages.Add(page)
}

public void HideTab(TabControl tabs, TabPage page)
{
    tabs.TabPages.Remove(page)
}

答案 3 :(得分:0)

使用标签(tabPage1)作为默认标签的工作示例,其中包含名为comboBox1的comboBox控件:

//Temporarly list to keep created tabs
List<TabPage> tempPages = new List<TabPage>(); 

private void Form2_Load(object sender, EventArgs e)
{
    comboBox1.Items.Add("tabPage2");
    comboBox1.Items.Add("tabPage3");
}

public void RemoveTabs()
{
    //Remove all tabs in tempPages if there are any
    if (tempPages != null)
    {
        foreach (var page in tempPages)
        {
            tabControl1.TabPages.Remove(page);
        }
        tempPages.Clear();
    }
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (comboBox1.SelectedIndex >= 0)
    {
        RemoveTabs();
        var newTabName = ((ComboBox)sender).SelectedItem.ToString();
        var newtab = new TabPage(newTabName);
        //Create the new tabPage 
        tabControl1.TabPages.Add(newtab);
        //Add the newly created tab to the tempPages list
        tempPages.Add(newtab);
    }

}