J'ai un formulaire Windows dans .NET qui servira d'assistant pour réaliser quelque chose. Cela contient 3 étapes: Step1, Step2, Step3. Chaque étape est à nouveau réellement un contrôle utilisateur. Le formulaire principal contient un panneau qui affiche l'étape en cours. Lorsque je passe d'une étape à l'autre:
1) Éliminer le contrôle utilisateur en cours en appelant sa méthode Dispose().
2) efface le panneau principal de forme
3) Initialiser le contrôle de l'utilisateur de la prochaine étape et l'ajouter dans le panneau principal
Maintenant, la question est, le contrôle de l'utilisateur de la première étape contient un plus grand contrôle de l'utilisateur. Quand je change à une autre étape et revenir à l'étape 1, je reçois l'erreur suivante:Impossible d'accéder à l'objet éliminé .NET
"Cannot access disposed object."
Parce que je dois d'abord disposer le contrôle de l'utilisateur avant d'afficher réellement l'autre étape. Et quand je reviens à l'étape 1 et essaie d'ouvrir le contrôle utilisateur à l'étape 1, il donne l'erreur ci-dessus.
Lorsque j'ai essayé de ne pas disposer du contrôle, je suis confronté à un nouveau problème. L'événement, où j'appelle le contrôle utilisateur placé sur Step1 à afficher, est appelé deux fois. Pouvez-vous s'il vous plaît me dire la raison pour cela? –
Je viens de me rendre compte que pas exactement deux fois .. Il est appelé autant de fois que je passe à une autre étape et je reviens à l'étape 1. –