private void CloseStringEditor() { if (stringEditor != null) { var editor = stringEditor; stringEditor = null; try { if (!editor.IsDisposed) { editor.Close(); } } catch { } } }
private void OpenStringEditor() { if (stringEditor == null) { var plugins = PluginList.All.Records.OfType<Plugin>().ToList(); if (plugins.Count == 0) { MessageBox.Show(this, "No plugins available to edit", Resources.ErrorText, MessageBoxButtons.OK, MessageBoxIcon.Error); return; } stringEditor = new StringsEditor(); stringEditor.FormClosed += delegate { CloseStringEditor(); }; stringEditor.Plugins = plugins.ToArray(); stringEditor.Show(this); // modeless. Close if the tree is modified. } }