【问题标题】:Can you load a .Net form as a control?您可以加载.Net 表单作为控件吗?
【发布时间】:2008-09-09 08:45:43
【问题描述】:

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

我正在反映的应用程序是旧版应用程序 - 我无法对其进行更改。

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

在 .Net Form 中展开 Control,我可以将反射的 Form 分配为 Control,但它会引发运行时异常。

表单不能作为控件加载。

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

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

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

    相关的sn-p:

    // 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 );
    

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        你得到什么异常?控件本身是否有可能给出异常(与框架相比)?也许在原始应用程序 Main 函数中调用了一些没有被调用的东西?

        【讨论】:

        • 我收到与 TopLevel 属性相关的错误,我无法在控件上设置,但可以在表单上设置。
        猜你喜欢
        • 2011-10-03
        • 2010-10-20
        • 1970-01-01
        • 2013-07-31
        • 1970-01-01
        • 2010-11-22
        • 1970-01-01
        • 2013-11-28
        • 1970-01-01
        相关资源
        最近更新 更多