Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#中隐藏选项卡标题?_C#_Combobox_Tabs - Fatal编程技术网

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

如何在c#中隐藏选项卡标题?,c#,combobox,tabs,C#,Combobox,Tabs,我对C#比较新鲜。我有疑问,请任何人澄清我 首先,当我单击第一个表单中的按钮时,默认情况下,新表单应该只打开一个选项卡(基本上这个表单将有3个选项卡) 在默认选项卡中,我将有一个包含两个项目的组合框。如果我选择了一个特定的项目,那么相应的选项卡应该出现在旁边 默认选项卡 我已经做了所有的事情,但是我不知道如何隐藏默认选项卡以外的选项卡,以及如何在从组合框中选择项目时显示相应的选项卡。请帮帮我 提前感谢。选项卡控件有多个选项卡页,每个选项卡页都有一个属性 (假设您使用的是WinForms)TabP

我对C#比较新鲜。我有疑问,请任何人澄清我

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

在默认选项卡中,我将有一个包含两个项目的组合框。如果我选择了一个特定的项目,那么相应的选项卡应该出现在旁边 默认选项卡

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


提前感谢。

选项卡控件有多个选项卡页,每个选项卡页都有一个属性


(假设您使用的是WinForms)

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

 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]);
                }
            }
        }
private void Form1\u加载(对象发送方,事件参数e)
{
List myList=newlist(){1,2,3,4,5};
listBox1.DataSource=myList;
foreach(tabControl1.TabPages中的变量项)
{
添加(项目作为TabPage);
}
}
List MyTabPages=新建列表();
私有无效列表框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
如果(MyTabPages.Count==0)
{
返回;
}
Int32 Index=listBox1.SelectedIndex;

如果(Index>=0&&Index,这些方法应该可以帮助您:

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

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

将选项卡(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);
    }

}
//临时列出以保留已创建的选项卡
List tempPages=新列表();
私有void Form2_加载(对象发送方、事件参数e)
{
comboBox1.Items.Add(“tabPage2”);
comboBox1.Items.Add(“tabPage3”);
}
公共无效删除abs()
{
//删除tempPages中的所有选项卡(如果有)
if(tempPages!=null)
{
foreach(临时页面中的变量页面)
{
tabControl1.TabPages.Remove(第页);
}
tempages.Clear();
}
}
私有无效组合框1\u SelectedIndexChanged(对象发送方,事件参数e)
{
如果(comboBox1.SelectedIndex>=0)
{
移除abs();
var newTabName=((组合框)sender);
var newtab=新选项卡页(newTabName);
//创建新的选项卡页
tabControl1.TabPages.Add(newtab);
//将新创建的选项卡添加到tempPages列表中
tempages.Add(newtab);
}
}

关于Visible属性,你是对的,但这段代码不是很好。我将发布一个反例。是的,它很有用。现在我如何才能将按钮添加到相应的选项卡页?因为你需要通过代码删除和添加选项卡页,我想你必须通过编程将控件添加到其中。但老实说,我认为你会喜欢这些东西在winforms中不要这样做,你只会让事情变得更困难。寻找另一个基础结构/设置。(但是WPF支持显示和隐藏具有
可见性的选项卡页。折叠的