protected override void Dispose(bool disposing) { if (isDisposed) { return; } isDisposed = true; DetachExtensionChain(); FileNameChanged -= TextEditor_FileNameChanged; MimeTypeChanged -= TextEditor_MimeTypeChanged; foreach (var provider in textEditorImpl.TooltipProvider) { provider.Dispose(); } textEditorImpl.Dispose(); base.Dispose(disposing); }