通常,控件正在添加到表单中。但我需要做相反的事情 - 将一个Form实例添加到容器用户控件。
这背后的原因是我需要将第三方应用程序嵌入到我自己的应用程序中。由于复杂性,将表单转换为用户控件是不可行的。
答案 0 :(得分:12)
这可以通过将窗体的TopLevel属性设置为false来实现。这将它变成了一个子窗口,几乎与UserControl无法区分。这是一个带有所需代码的示例用户控件:
public partial class UserControl1 : UserControl {
public UserControl1() {
InitializeComponent();
}
public void EmbedForm(Form frm) {
frm.TopLevel = false;
frm.FormBorderStyle = FormBorderStyle.None;
frm.Visible = true;
frm.Dock = DockStyle.Fill; // optional
this.Controls.Add(frm);
}
}