在tabControl中隐藏和显示TabPages

我正在尝试根据用户选择显示或隐藏选项卡。如果用户选择性别男性然后形成用于在标签页“男性”应显示,并且如果用户选择了女性然后类似未来形式雄性应显示在下一个标签“女性”


我尝试使用


tabControl1.TabPages.Remove(...)


tabControl1.TabPages.Add(...)

它添加和删除了标签页,但是这样做也会使我对标签页的控件失去控制...我看不到它们。这里有什么问题吗?


人到中年有点甜
浏览 982回答 3
3回答

红颜莎娜

您可以从TabControl.TabPages集合中删除选项卡页,并将其存储在列表中。例如:&nbsp; &nbsp; private List<TabPage> hiddenPages = new List<TabPage>();&nbsp; &nbsp; private void EnablePage(TabPage page, bool enable) {&nbsp; &nbsp; &nbsp; &nbsp; if (enable) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tabControl1.TabPages.Add(page);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hiddenPages.Remove(page);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tabControl1.TabPages.Remove(page);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; hiddenPages.Add(page);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; protected override void OnFormClosed(FormClosedEventArgs e) {&nbsp; &nbsp; &nbsp; &nbsp; foreach (var page in hiddenPages) page.Dispose();&nbsp; &nbsp; &nbsp; &nbsp; base.OnFormClosed(e);&nbsp; &nbsp; }

犯罪嫌疑人X

我认为答案要容易得多。要隐藏选项卡,您可以使用已尝试的方式或处理TabPage本身。TabControl1.TabPages.Remove(TabPage1) 'Could be maleTabControl1.TabPages.Remove(TabPage2) 'Could be female麻生删除TabPage不会破坏它及其上的控件。要再次显示相应的标签,只需使用以下代码TabControl1.TabPages.Insert(0, TabPage1) 'Show maleTabControl1.TabPages.Insert(1, TabPage2) 'Show female
打开App,查看更多内容
随时随地看视频慕课网APP