Example #1
0
		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();
		}
Example #2
0
		/// <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();
		}