Impossible d'accéder à un objet supprimé?

J'ai un compte à rebours de forme - sur le premier formulaire que l'utilisateur va entrer dans le temps de compte à rebours - les délais d'alerte, le message de fin, etc. Il y a également deux boutons Radio (Max/Min) et selon celle qui est sélectionnée qu'ils vont ouvrir une nouvelle Max ou Min forme où le temps va commencer le compte à rebours. Il fonctionne très bien et le compte à rebours que j'attends. Cependant si j'ai sortie la valeur Max ou Min la forme et essayer de courir à nouveau avec une nouvelle fois, j'obtiens l'erreur. Le code est ci-dessous - la en commentaire .ShowDialog (); était quelque chose que j'ai essayé - il permettez-moi de fermer et d'ouvrir les nouvelles formes ok, mais il n'a pas fait de commencer le compte à rebours. UpdateLabels est la fonction qui fait la mise à jour des Étiquettes.

                bool Max = rbMax.Checked;
                if (Max == true)
                {
                    //_Max.ShowDialog(this);
                    _Max.Show();

                }
                else
                    //_Min.ShowDialog(this);
                    _Min.Show();

                UpdateLabels();
            }

J'ai aussi essayé la suite de laquelle j'ai lu en ligne comme une solution possible mais elle n'a pas de travail....

    private void Max_FormClosing(object sender, FormClosingEventArgs e)
    {
        this.Hide();
        this.Parent = null;
    }

Quelqu'un peut m'aider - je peux poster le UpdateLabels fonction si nécessaire. Je suis assez nouveau à l'INTERFACE utilisateur de développement C# de sorte que toute aide serait super. Merci.

Une différence notable entre Form.ShowDialog et Form.Show est que le premier n'a pas automatiquement Dispose votre forme, tandis que les seconds ne. La raison pour cela est que si vous montrez une forme mode moins (c'est à dire avec Form.Show), l'exécution du programme retourne à ton code avant le formulaire est fermé, et vous n'avez pas de moyen facile de savoir quand le formulaire est fermé, à l'extérieur de votre Form classe. Donc, parce que vous n'avez pas le bon endroit pour appeler Dispose, Windows Forms, prend la responsabilité de le faire pour vous au bon moment (lorsque le formulaire est fermé).

OriginalL'auteur Ctrl_Alt_Defeat | 2011-08-09