Я пытаюсь написать пользовательский элемент управления в WinForms .NET (не ASP.NET). Управление относительно простое. Он будет содержать метку, кнопку и DataGridView.
Тем не менее, элемент управления должен иметь возможность создавать саму себя, т. Е. Когда пользователь нажимает кнопку (родительского элемента управления), под ним отображается как минимум 1 вложенный (дочерний) элемент управления того же типа (вроде дерева )
У меня нет успеха при написании такого рекурсивного элемента управления с использованием «Пользовательского элемента управления». Исключение StackOverflow возникает при создании экземпляра MyControl в его собственном конструкторе.
Поэтому я склоняюсь к использованию «Пользовательского элемента управления», надеясь, что он сможет справиться с созданием самого себя (возможно, в событии Paint ??). Однако для создания пользовательского элемента управления требуется больше работы, поэтому я не хочу идти по этому пути, если он будет длиться вечно. Я в сжатые сроки.
Кто-нибудь делал это с помощью пользовательского элемента управления или у вас есть твердые идеи о том, как создать рекурсивный элемент управления?
Кстати, этот элемент управления будет использоваться в довольно конечном числе рекурсивных комбинаций, поэтому, возможно, было бы лучше создать отдельный элемент управления для каждого сценария родитель / потомок? Я думаю, что это приведет к по крайней мере 10 отдельных пользовательских элементов управления.
спасибо за вашу помощь
ОБНОВЛЕНИЕ (вот моя первоначальная попытка остановить состояние по вашему отзыву, но это все еще приводит к тому, что дети создаются бесконечно):
public partial class CustomX : UserControl
{
private IList _children = new List();
public CustomX()
{
InitializeComponent();
Recurse(0);
}
private void Recurse(int childCount)
{
if (childCount