Правильный вызов Dispose () для открытой формы - PullRequest
1 голос
/ 12 июля 2011

Предположим, у меня есть 2 формы: FormA и FormB. При нажатии кнопки FormA экземпляр FormB создается и отображается.

Как правильно Dispose() FormB экземпляр после его закрытия?

Чтобы быть более точным, давайте предположим, что это код, который создает форму:

    public void Settings(object sender, EventArgs e)
    {
        if (_settings == null)
            _settings = new Settings(_repositoryCollection, _config, this);

        _settings.Show();
        _settings.Focus();
    }

1 Ответ

3 голосов
/ 12 июля 2011

Если вы хотите модальное диалоговое окно, используйте

using (var settings = new Settings(_repositoryCollection, _config, this))
{
   settings.ShowDialog ();
}

В противном случае для нормальной формы, отображаемой в то же время, что и Форма A ... вам, возможно, даже не понадобится.Смотрите это сообщение .:

_settings = new Settings(_repositoryCollection, _config, this);
_settings.Closed += delegate {_settings.Dispose ();};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...