Вы не можете сделать TabPage
как root конструктора, в то время как вы можете сделать то же самое для Panel
или других элементов управления контейнером. Ограничение заключается в том, что TabPage
может размещаться только в TabControl
, даже в оверлейном контроле дизайнера:
TabPage нельзя добавить в 'System. Windows .Forms .Design.DesignerFrame + OverlayControl. TabPages можно добавлять только в TabControls.
Элемент управления может отображаться как root конструктора, когда базовый класс элемента управления имеет конструктор типа DocumentDesigner
. Form
и UserControl
являются такими элементами управления, что означает, что при создании нового Form1:Form
или нового UserControl1:UserControl
, поскольку базовый класс является производным от проектируемого элемента управления, тогда класс можно редактировать в конструкторе как root.
Я полагаю, что вы можете справиться со своими требованиями, используя UserControl
, но для целей обучения (или в качестве обходного пути), если вы хотите, чтобы элемент управления, основанный на Panel
, можно было скопировать, вы можете скопировать следующий код в файл кода:
public class MyControl: MyDesignableControl
{
}
[Designer(typeof(DocumentDesigner), typeof(IRootDesigner))]
public class MyDesignableControl : Panel
{
}
Затем сохраните его, а затем дважды щелкните по нему, и вы увидите, что вы можете создать его как root элемент управления.
Затем, после того как вы закончили с дизайном измените Panel
на TabPage
.