你可以加载一个.Net表格作为控件吗?

时间:2008-09-09 08:45:44

标签: .net winforms

我想通过反射将桌面应用程序加载为另一个应用程序中的Control。

我反映的应用程序是遗留应用程序 - 我无法对其进行更改。

我可以动态访问表单,但不能将其作为控件加载。

在.Net Form中扩展了Control,我可以将反射的Form指定为Control,但它会抛出一个运行时异常。

无法将表单作为控件加载。

有没有办法将表单转换为控件?

3 个答案:

答案 0 :(得分:10)

是的,这很好用。我正在开发一个.NET应用程序,它将表单加载到主机表单上的面板中。

相关摘录:

// setup the new form
form.TopLevel = false;
form.FormBorderStyle = FormBorderStyle.None;
form.Dock = DockStyle.Fill;
form.Show ( );

// add to the panel's list of child controls
panelFormHost.Controls.Add ( form );

答案 1 :(得分:1)

您应该能够将表单添加到父表单的控件集合中......

见这里: http://vbcity.com/forums/topic.asp?tid=30539

如果失败,请尝试使用适配器模式创建一个包含旧表单的容器,然后将其加载到MDI中?

答案 2 :(得分:1)

你得到的例外是什么?控件本身是否可能提供异常(与框架相比)?也许在原始应用程序中调用了一些未被调用的主函数?