【问题标题】:How can I inherit form and access controls from mother form?如何从母窗体继承窗体和访问控制?
【发布时间】:2010-06-13 21:40:18
【问题描述】:

我正在编写我的项目,但我遇到了这个问题:我尝试编写一个库,我想在我的应用程序中使用它。在库中,我有一个带有菜单条、工具栏、列表视图、树视图等的表单。库中的所有内容都受到保护。在我的应用程序中,我创建了从库继承的表单。我可以使用 VS 2008 中的设计器面板更改和添加新功能到列表视图和树视图,但我无法访问菜单条和工具栏,即使它们受到保护。为什么呢?我将不胜感激。

【问题讨论】:

  • 最好提供部分代码。

标签: c#


【解决方案1】:

这是在 MenuStrip 和 ToolStrip 控件的设计器中有意完成的。这个feedback article的主题。您可以编写代码而不是使用设计器。或者考虑在 InitializeComponent() 调用之后合并条带,这很难做到正确。您最好的选择可能是避免将它们放在您的基本表单中。

【讨论】:

    【解决方案2】:

    我猜受保护的成员是字段。
    Visual Studio 设计器中的PropertyGrid 仅显示属性,请尝试将所需字段公开为属性。
    另外 - 我认为属性应该声明为public,以便设计人员在属性窗口中显示它们。

    【讨论】:

      【解决方案3】:

      这是因为视觉继承的限制。您需要实施一种解决方法才能使其正常工作。基本上,您可以将控件公开给派生类,但您将失去设计器支持。

      The DataGridView also has this problem, and it what my blog post talks about.

      【讨论】:

        猜你喜欢
        • 2021-04-12
        • 2016-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-23
        • 1970-01-01
        相关资源
        最近更新 更多