【问题标题】:Embed a form onto a tabcontrol in windows forms将窗体嵌入到 Windows 窗体中的选项卡控件中
【发布时间】:2011-04-26 20:54:17
【问题描述】:

我在 windows 窗体中有一个选项卡控件,我希望能够单击一个选项卡,并且在选项卡的正文区域中,我希望它能够将另一个窗体显示为嵌入式组件。这可能吗?如果是这样,有人可以提供一个示例或指向如何完成此操作的示例的链接吗?

【问题讨论】:

  • 你能否将其他表单内容移动到用户控件并嵌入用户控件?
  • 您认为将 43 个表单移至用户控件有多难?或者更确切地说,将表单移动到用户控件有多容易?
  • 微不足道的不可能的任何事情,取决于您的表单有多少只是表单,或者在此处和那里混合了域逻辑的表单:)

标签: c# forms tabcontrol windows-forms-designer


【解决方案1】:

您可能正在寻找Tabbed MDI Child Forms

【讨论】:

  • 你知道其他例子吗?那个并没有解释一切如何运作良好。
  • 这是实际的正确答案,该链接显示了如何使其工作的所有内容。我测试了它,它就像一个魅力。
  • 别忘了将标签控件的高度设置为24像素
【解决方案2】:

您可以嵌入表单,但这不是最佳选择。

最好将内容放在 UserControls 上并将其添加到 TabPage。

【讨论】:

    【解决方案3】:

    将您的 MainForm (Parent) 设置为 IsMDIContainer = true;

    创建一个 ChildForm 的实例并调用这个函数:

    FormChild frmChild = new FormChild();
    AddNewTab(frmChild);
    

    将此函数复制到您的代码中:

    private void AddNewTab(Form frm)
    {
    
        TabPage tab = new TabPage(frm.Text);
    
        frm.TopLevel = false;
    
        frm.Parent = tab;
    
        frm.Visible = true;
    
        tabControl.TabPages.Add(tab);
    
        frm.Location = new Point((tab.Width - frm.Width) / 2, (tab.Height - frm.Height) / 2);
    
        tabControl.SelectedTab = tab;
    
    }
    

    【讨论】:

    • 我删除了 frm.Location 并添加了 WindowState = Maximized 和 FormBorderStyle = None。完美运行!
    【解决方案4】:

    我认为另一个答案的想法是正确的;选项卡式 MDI 可能是您想要的。

    有一种方法,您可以创建一个与表单内容相同的 UserControl,然后在 TabPage 上使用它。

    TabPage myTabPage = new TabPage(sometext);
    myUserControl = new myUserControlType();
    myUserControl.Dock = DockStyle.Fill;
    myTabPage.Controls.Add(myUserControl);
    myTabControl.Add(myTabPage);
    

    http://bytes.com/topic/c-sharp/answers/270457-can-i-add-form-tabpage 更详细;但我会先看看 MDI 的东西。

    【讨论】:

      【解决方案5】:

      如果你不想使用 MDI,你可以尝试将所需表单的所有内容放到用户控件中,并在表单和选项卡中添加此用户控件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-30
        • 2010-11-23
        • 1970-01-01
        • 1970-01-01
        • 2022-11-03
        • 1970-01-01
        • 2015-01-25
        相关资源
        最近更新 更多