我试图根据用户选择显示或隐藏选项卡。如果用户选择性别为男性,则应显示“男性”选项卡中的男性表格,如果用户选择女性,则应在下一个选项卡“女性”中显示类似的下一个表格

我尝试使用

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);
    }

10-07 18:28