如何在C#中创建横幅面板?

我想创建自己的自定义控件,它基本上是一个包含3行和1列的TableLayoutPanel。 顶部和底部行将包含标签(横幅),中间行是我将添加其他控件的位置。 问题是,当我尝试从此控件构建其他窗体/控件时,设计器无法识别中间面板。 我怎么得到它? 如果我将文本框拖到中间并设置Dock = Fill,它将覆盖entrie表单/控件。 此外,有没有办法让设计师拒绝将控件拖动到顶部和底部(横幅)行? 我已经尝试了以下链接中的步骤,但没有任何运气( http://support.microsoft.com/?scid=kb%3Ben-us%3B813450&x=21&y=15 )。

我想到了。 诀窍是创建我自己的inheritance自ParentControlDesigner的设计器并重写Initialize方法并为内部内容面板调用EnableDesignMode。 最重要的是,我需要将我的用户控件的Designer属性设置为这个新设计器。 详细信息如下所示。

但有一个问题。 我可以将控件拖到我创建的内容面板上,一切看起来都很好。 但是,一旦我重新编译,控件就会消失。 他们仍在那里,我只是觉得他们在横幅面板之前被吸引了。 我将为此问题创建一个单独的线程。