protected override void Dispose(bool disposing) { try { if (disposing) { if (this.editorControl != null && this.editorControl.RichTextBoxControl != null) { this.editorControl.RichTextBoxControl.TextChanged -= new System.EventHandler(this.OnTextChange); this.editorControl.RichTextBoxControl.MouseDown -= new MouseEventHandler(this.OnMouseClick); this.editorControl.RichTextBoxControl.SelectionChanged -= new EventHandler(this.OnSelectionChanged); this.editorControl.RichTextBoxControl.KeyDown -= new KeyEventHandler(this.OnKeyDown); this.editorControl.RichTextBoxControl.GotFocus -= new EventHandler(this.OnGotFocus); } // Dispose the timers if (null != FileChangeTrigger) { FileChangeTrigger.Dispose(); FileChangeTrigger = null; } if (null != FNFStatusbarTrigger) { FNFStatusbarTrigger.Dispose(); FNFStatusbarTrigger = null; } SetFileChangeNotification(null, false); if (editorControl != null) { editorControl.RichTextBoxControl.Dispose(); editorControl.Dispose(); editorControl = null; } if (FileChangeTrigger != null) { FileChangeTrigger.Dispose(); FileChangeTrigger = null; } if (extensibleObjectSite != null) { extensibleObjectSite.NotifyDelete(this); extensibleObjectSite = null; } GC.SuppressFinalize(this); } } finally { base.Dispose(disposing); } }
/// <summary> /// Initialization routine for the Editor. Loads the list of properties for the vspackagesample document /// which will show up in the properties window /// </summary> /// <param name="package"></param> private void PrivateInit(VSPackageSamplePackage package) { myPackage = package; loading = false; gettingCheckoutStatus = false; trackSel = null; Control.CheckForIllegalCrossThreadCalls = false; // Create an ArrayList to store the objects that can be selected ArrayList listObjects = new ArrayList(); // Create the object that will show the document's properties // on the properties window. EditorProperties prop = new EditorProperties(this); listObjects.Add(prop); // Create the SelectionContainer object. selContainer = new Microsoft.VisualStudio.Shell.SelectionContainer(true, false); selContainer.SelectableObjects = listObjects; selContainer.SelectedObjects = listObjects; // Create and initialize the editor System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditorPane)); this.editorControl = new MyEditor(); resources.ApplyResources(this.editorControl, "editorControl", CultureInfo.CurrentUICulture); // Event handlers for macro recording. this.editorControl.RichTextBoxControl.TextChanged += new System.EventHandler(this.OnTextChange); this.editorControl.RichTextBoxControl.MouseDown += new MouseEventHandler(this.OnMouseClick); this.editorControl.RichTextBoxControl.SelectionChanged += new EventHandler(this.OnSelectionChanged); this.editorControl.RichTextBoxControl.KeyDown += new KeyEventHandler(this.OnKeyDown); // Handle Focus event this.editorControl.RichTextBoxControl.GotFocus += new EventHandler(this.OnGotFocus); // Call the helper function that will do all of the command setup work setupCommands(); }