Дизайнер форм Visual Studio, отображающий список элементов управления - PullRequest
0 голосов
/ 21 февраля 2020

Я знаю, что заставить Form Designer работать - это дело tickli sh. Generics, x64, тонкие проблемы с XML проекта ... Но, возможно, кто-то может посоветовать мою текущую проблему, которая заключается в том, что созданный мной компонент наследуется от TabPage, когда я пытаюсь просмотреть его в шоу дизайнера вверх как список его элементов управления, например:

enter image description here

Заранее спасибо.

1 Ответ

2 голосов
/ 22 февраля 2020

Вы не можете сделать 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.

...