我试图根据用户选择显示或隐藏选项卡。如果用户选择性别为男性,则应显示“男性”选项卡中的男性表格,如果用户选择女性,则应在下一个选项卡“女性”中显示类似的下一个表格
我尝试使用
tabControl1.TabPages.Remove(...)
和
tabControl1.TabPages.Add(...)
它添加和删除了标签页,但是这样做也会使我对标签页的控件失去控制...我看不到它们。这是什么问题?
最佳答案
您可以从TabControl.TabPages集合中删除选项卡页,并将其存储在列表中。例如:
private List<TabPage> hiddenPages = new List<TabPage>();
private void EnablePage(TabPage page, bool enable) {
if (enable) {
tabControl1.TabPages.Add(page);
hiddenPages.Remove(page);
}
else {
tabControl1.TabPages.Remove(page);
hiddenPages.Add(page);
}
}
protected override void OnFormClosed(FormClosedEventArgs e) {
foreach (var page in hiddenPages) page.Dispose();
base.OnFormClosed(e);
}