Visual Studio Form Designer显示控件列表

问题描述 投票:0回答:1

我知道让Form Designer正常工作是一件艰巨的任务。泛型,x64,项目XML的细微问题...但是也许有人可以提供有关我当前问题的建议,即当我尝试在设计器中查看它时,我创建的组件继承自TabPage,显示为控件列表,如下所示:

enter image description here

提前感谢。

c# .net winforms windows-forms-designer
1个回答
1
投票

您不能将TabPage作为设计者的根,而对于Panel或其他容器控件也可以这样做。限制是因为TabPage只能在TabControl中托管,甚至不能在设计器的叠加控件中托管:

TabPage无法添加到'System.Windows.Forms.Design.DesignerFrame + OverlayControl'。标签页只能添加到TabControls。

当控件的基类具有DocumentDesigner类型的设计器时,该控件可以显示为设计器的根。 FormUserControl是这样的控件,这意味着当您创建新的Form1:Form或新的UserControl1:UserControl时,由于基类源自可设计的控件,因此可以在设计器中将其作为根进行编辑。

我相信您可以通过使用UserControl来满足您的要求,但是出于学习目的(或作为解决方法),如果您希望使从Panel派生的控件可设计,则可以将以下代码复制到代码文件中:

public class MyControl: MyDesignableControl
{
}
[Designer(typeof(DocumentDesigner), typeof(IRootDesigner))]
public class MyDesignableControl : Panel
{

}

然后保存它,然后双击它,您会看到可以将其设计为根控件。

然后在完成设计后,将Panel更改为TabPage

© www.soinside.com 2019 - 2024. All rights reserved.