我知道让Form Designer正常工作是一件艰巨的任务。泛型,x64,项目XML的细微问题...但是也许有人可以提供有关我当前问题的建议,即当我尝试在设计器中查看它时,我创建的组件继承自TabPage
,显示为控件列表,如下所示:
提前感谢。
您不能将TabPage
作为设计者的根,而对于Panel
或其他容器控件也可以这样做。限制是因为TabPage
只能在TabControl
中托管,甚至不能在设计器的叠加控件中托管:
TabPage无法添加到'System.Windows.Forms.Design.DesignerFrame + OverlayControl'。标签页只能添加到TabControls。
当控件的基类具有DocumentDesigner
类型的设计器时,该控件可以显示为设计器的根。 Form
和UserControl
是这样的控件,这意味着当您创建新的Form1:Form
或新的UserControl1:UserControl
时,由于基类源自可设计的控件,因此可以在设计器中将其作为根进行编辑。
我相信您可以通过使用UserControl
来满足您的要求,但是出于学习目的(或作为解决方法),如果您希望使从Panel
派生的控件可设计,则可以将以下代码复制到代码文件中:
public class MyControl: MyDesignableControl
{
}
[Designer(typeof(DocumentDesigner), typeof(IRootDesigner))]
public class MyDesignableControl : Panel
{
}
然后保存它,然后双击它,您会看到可以将其设计为根控件。
然后在完成设计后,将Panel
更改为TabPage
。