2

我正在开发一个项目,我需要一个很酷的可定制界面,所以我设计了一个“父表单”,根据 XML 定制选项,所有孩子都可以从中获得“风格化”。我添加了一个TableLayoutPanel来绘制边框和一个Panel在中间,子窗体应该添加它们的组件并完成它们的工作。

我面临的问题是,即使我将“内容面板”设置为“公共”,设计师也不会让我从子表单中添加控件。

有什么不同的方法可以让我从“可定制的”超类派生出可设计的形式?

编辑:父类是公共的,包含内容面板的每个容器也都设置为公共的。

在此处输入图像描述

4

2 回答 2

1

我在父级的内容窗格中手动向子级的 Designer.cs 添加了一个新面板,将其设置为 DockStyle.Fill。当我回到设计器时,它现在可以让我将组件添加到孩子的内容面板。

有点乱,我敢肯定会有另一种方法......

但我会一直这样工作,直到我能找到更好的解决方法。

于 2013-09-22T17:36:36.293 回答
1

我已经从父类范围中的设计器以外的代码添加了一个新的公共面板,然后在父构造函数中我将它添加到 TableLayoutPanel,从构造函数代码配置停靠和 colspan,在 InitializeComponents() 调用和 BAM 下方!

    public Panel contentPane = new Panel();

    public Dialogo()
    {
        InitializeComponent();
        Content.Controls.Add(contentPane);
        contentPane.Dock = DockStyle.Fill;
        // More code
    }

所以它是“内容”内的一个内容窗格,它是表格第二行中的另一个面板,占据 5 列(因此表格围绕它并允许我在周围绘制边框。我不知道为什么,但添加了内容 -设计器以外的代码中的面板允许我直接将组件从设计器中的子表单添加到面板。

于 2013-09-22T18:10:13.920 回答