void _form_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e) { this.Disconnect(); _mainview = null; // プラグインを破棄 foreach (Hal.NCSPlugin.IPlugin plugin in _plugins) { // IMainviewのDispose中に呼び出される可能性があるのでIMainViewのDisposeだけは呼び出さない if (!(plugin is IMainView)) { plugin.Dispose(); } } _plugins.Clear(); _plugins = null; _ownerCommentPoster.Dispose(); }
/// <summary> /// ビューアで使用するメインフォームを指定する /// (拡張の際、別のフォームを使用できるように) /// </summary> /// <param name="mainform"></param> public void SetMainView(IMainView mainview) { _form = mainview as System.Windows.Forms.Form; System.Diagnostics.Debug.Assert(_form != null, "mainviewはSystem.Windows.Forms.Formの派生クラスである必要があります。"); Hal.NCSPlugin.IPlugin plugin = mainview as Hal.NCSPlugin.IPlugin; _mainview = mainview; plugin.Initialize(this); _form.FormClosing += new System.Windows.Forms.FormClosingEventHandler(_form_FormClosing); _plugins.Add(plugin); Initialize(); }