正确调用Dispose()以打开表单

时间:2011-07-12 03:30:45

标签: .net winforms

我们假设我有两种形式:FormAFormB。在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 个答案:

答案 0 :(得分:3)

如果需要模态对话框,请使用

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

否则,对于与FormA同时显示的正常表格...您甚至可能不必。见post。:

_settings = new Settings(_repositoryCollection, _config, this);
_settings.Closed += delegate {_settings.Dispose ();};