【问题标题】:Adding the same Panel to multiple TabPages将同一个面板添加到多个 TabPages
【发布时间】:2010-06-01 21:13:00
【问题描述】:

在我的previous question 中,我可以在运行时将设计时面板添加到标签页,我的代码看起来像这样,并且可以正常工作。

        tabControl1.SuspendLayout();
        tabControl1.TabPages[0].Controls.Add(panel1);
        tabControl1.ResumeLayout();

但现在我需要做这样的事情:

    tabControl1.SuspendLayout();
    tabControl1.TabPages[0].Controls.Add(panel1);
    tabControl1.TabPages[1].Controls.Add(panel1);
    tabControl1.TabPages[2].Controls.Add(panel1);
    tabControl1.ResumeLayout();

仅在运行时我就可以知道我需要多少这些标签页。但现在为了测试,我假设我将拥有三个 tabPages

问题是面板只被添加到Last标签页, 我怎样才能解决这个问题?我希望它被添加到所有标签页 谢谢。

【问题讨论】:

    标签: c# winforms tabcontrol


    【解决方案1】:

    你不能。一个控件一次只能有一个父级。幸运的是,一次只能看到一个标签页,所以我想您可以在显示页面时在页面之间移动面板?另一方面,如果面板对于所有页面都位于相同的位置,也许它不应该放在标签控件的内部,而应该放在顶部吗?

    【讨论】:

    • 好的,谢谢,所以我想我应该这样做:Panel 的父级应该首先是 TabPage[0],因为至少我会有一个页面并且用户首先会看到它。 ...但是在 TabPageChange 事件中,我应该将该面板的父级更改为 TabPage[currentTabIndex] 可以吗?
    • @BDotA:我认为应该可以。我会试一试,看看效果如何。
    • @FredrikMörk 优秀的概念 - 我能够将其应用于我的 vb.net 项目:我发现可能需要澄清的一件事是,当您说“在控件之上”时,我发现它更容易定位我的面板,使其大部分重叠在选项卡控件的顶部,然后我调整面板的大小以适应选项卡的范围。我最初的尝试是将面板随意放置在选项卡的顶部(和内部) - 它需要放置在选项卡的外部才能正常工作。
    猜你喜欢
    • 2018-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多