我对C#更新鲜。我有一个疑问,请任何人澄清我。
首先,当我点击第一个表单中的按钮时,默认情况下应该只打开一个新表单(基本上这个表单将有3个选项卡)。
在默认标签中,我将有一个comboBox
,其中包含2个项目的列表。如果我选择了特定项目,则应在旁边显示相应的选项卡
默认选项卡。
我已经做了所有事情,但我没有得到如何隐藏除默认选项卡以外的选项卡,以及如何在从组合框中选择项目时显示相应的选项卡。请帮我。
提前谢谢。
答案 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);
}
}