Мне не нравились доступные решения, поэтому я начал создавать собственный интерфейс мастера.Я использую GroupBox для каждого шага мастера, но поскольку каждый шаг (каждый GroupBox) должен иметь одинаковую структуру и стиль, я решил использовать пользовательские элементы управления.
Теперь мне нужен пользовательский GroupBox, который имеет следующие элементы:
FlowLayoutPanel, чтобы разработчик мог поместить в нее нужные элементы управления, используя конструктор.(Например, два элемента управления TextBox, чтобы пользователь мог ввести имя пользователя и пароль.)
Метка в этой FlowLayoutPanel для описания шага.
Кнопка для возврата.
Еще одна панель FlowLayout, в которую пользователь может добавлять пользовательские кнопки.
Вот предварительный просмотр:

Задача № 1
Когда я создаю новый UserControl и наследую GroupBox, я не могу получить GroupBox, который я могу поместить, и поместить в него материал,Все, что я вижу в конструкторе, это сообщение:

Задача № 2
Поскольку я не мог заставить его наследовать GroupBox так, как хотел, япопытался сделать это, поместив GroupBox в пользовательский UserControl.(Я не хочу этого. Я просто сделал это, чтобы предоставить несколько скриншотов.) После этого мне пришлось включить EnableDesignMode на FlowLayoutPanels, чтобы разработчик мог добавить в них элементы управления с помощью дизайнера.Проблема в том, что они также стали подвижными и изменяли размеры (я не хочу этого. Они правильно привязаны, и их не следует перемещать или изменять размер.), И когда вы пытаетесь их переместить, вы получаете «Ссылка на объект не установлена на экземпляробъект."что делает его более уродливым:

Задача № 3
Я хочу, чтобы элементы в главной FlowLayoutPanel были центрированы.Чтобы сделать это, мне нужно было поместить элемент управления (метку описания) и изменить его размер до ширины FlowLayoutPanel, чтобы элементы управления после него были центрированы.(Обходной путь, если вы спросите меня. Делать это с помощью TableLayoutPanel выглядело проще, но их ячейки могут содержать только один элемент. Вы можете добавить Panel, чтобы ячейка содержала больше элементов, но тогда вы теряете центрирование.) Проблема в том, что мне нужно установитьПривязка к None для каждого элемента управления, который я добавляю.Могу ли я подключить что-нибудь (например, OnDesignerControlAdded ???), чтобы автоматически установить привязку добавленного элемента управления на None?

Все ваши ответы помогут мне построить проект с открытым исходным кодом Маг на GitHub и многих других проектах с открытым исходным кодом на его основе.Заранее благодарим за все ваши усилия.