J'ai créé plusieurs contrôles utilisateur dans mon projet et ce que je dois faire est de pouvoir basculer entre eux sur un contrôle de panneau.
par exemple, si l'utilisateur clique sur button1, userControl1 sera ajouté au panneau après la suppression de tous les contrôles dessus, etc.
J'ai ce code:
panel1.Controls.Add(MyProject.Modules.Masters);
mais ça ne marche pas.
Comment je peux le faire?
Vous devez instancier vos contrôles. Vous devrez vous assurer que la taille est définie de manière appropriée ou que le fichier doit avoir un dockfill approprié.
var myControl = new MyProject.Modules.Masters();
panel1.Controls.Add(myControl);
Vous devez instancier un nouveau MyProject.Modules.Masters.
MyProject.Modules.Masters myMasters = new MyProject.Modules.Masters()
panel1.Controls.Add(myMasters);
Cela ne fera qu'ajouter un nouveau contrôle à panel1. Si vous souhaitez également tout effacer du panneau avant d'ajouter le contrôle comme vous l'avez dit dans la question, appelez d'abord ceci:
panel1.Controls.Clear();
Ce n'est pas plus facile.
panel1.Controls.Clear();
panel1.Controls.Add(new MyProject.Modules.Masters());
EDIT: Peut-être essayer ceci ...
panel1.Controls.Cast<Control>().ForEach(i => i.Dispose());
panel1.Controls.Clear();
panel1.Controls.Add(new MyProject.Modules.Masters());