在另一个表单中显示Winform"表单",就像它是用户控件一样

Fas*_*tAl 2 .net c# vb.net winforms

编辑

这个问题的答案虽然是一个明显的解决方案,但对于这种情况来说还不够.我在原来的问题中加粗了这个原因,解释了为什么我希望它"完全回答" - 感谢LarsTech!

我原来的问题:

我有一个包含100个WinForms 表单屏幕的库,它是"Beyond My Control",我可以在我的应用程序中共享一些.但是,我的应用程序使用选项卡控件,我需要表单的内容显示在选项卡中而不是弹出窗口.

当我尝试新建其中一个表单并将其添加到选项卡的控件集合时,我收到以下错误消息:

顶级控件无法添加到控件中.

谁知道怎么解决这个问题?我知道还有其他方法涉及更好的架构,但截止日期,积压和富有的新客户等待着.[叹/]

private void button1_Click(object sender, EventArgs e)
{
  //panel1.Controls.Add(new Button());
  Form f = new Form();
  f.Controls.Add(new CheckBox());
  //f.ShowDialog();
  panel1.Controls.Add(f);
}
Run Code Online (Sandbox Code Playgroud)

Lar*_*ech 5

尝试关闭TopLevel:

f.TopLevel = false;
f.FormBorderStyle = FormBorderStyle.None;
f.Visiible = true;
Run Code Online (Sandbox Code Playgroud)

现在它本质上是一个UserControl.但请注意,因为它是一种形式,它会出现在Application.OpenForms收藏中,这可能不是你的意图.