Je tente d'écrire un 'contrôle utilisateur' dans WinForms .NET (pas ASP.NET). Le contrôle est relativement simple. Il contiendra une étiquette, un bouton et un DataGridView.Comment écrire un contrôle personnalisé récursif dans WinForms .NET
Cependant, le contrôle doit pouvoir s'instancier, c'est-à-dire que lorsque l'utilisateur clique sur le bouton (du contrôle parent) au moins 1 contrôle imbriqué (enfants) du même type sera affiché en dessous (comme Tree)
Je n'ai pas réussi à écrire un tel contrôle récursif en utilisant un «contrôle utilisateur». Une exception StackOverflow se produit lors de l'instanciation de MyControl dans son propre constructeur. Par conséquent, je suis penché vers l'utilisation d'un «contrôle personnalisé», en espérant qu'il peut gérer l'instanciation de lui-même (peut-être dans l'événement Paint ??). Beaucoup plus de travail doit cependant entrer dans un contrôle personnalisé, donc je ne veux pas aller dans ce sens si ça va prendre une éternité. Je suis dans un délai serré.
Quelqu'un a-t-il fait cela en utilisant un contrôle personnalisé ou avez-vous des idées solides sur la façon de créer un contrôle récursif? Par ailleurs, ce contrôle serait utilisé dans un nombre relativement fini de combinaisons récursives, alors peut-être serait-il préférable de créer un contrôle séparé pour chaque scénario parent/enfant? Je pense que cela se traduirait par au moins 10 contrôles utilisateur distincts.
Merci pour votre aide
MISE À JOUR (voici ma première tentative à une condition d'arrêt par vos commentaires, mais cela provoque encore des enfants à créer indéfiniment):
public partial class CustomX : UserControl { private IList _children = new List(); public CustomX() { InitializeComponent(); Recurse(0); } private void Recurse(int childCount) { if (childCount
Veuillez nous montrer le code ou le schéma. Cela ne devrait pas être un problème de faire ce que vous voulez. – Stefan
Allez de l'avant et publiez le code de contrôle WHOLE entier. Voyons ce qu'il y a dans cette fonction Recurse. Je ne vois pas de constructeur surchargé, alors j'essaie de comprendre comment vous transmettez des informations au contrôle des enfants sur l'état de la récursivité. – DancesWithBamboo