Erstellen von benutzerdefinierten Editoren und Designern

Die integrierte Visual Studio-Entwicklungsumgebung (Integrated Development Environment, IDE) kann verschiedene Editortypen hosten:

  • Der Visual Studio-Kern-Editor

  • Benutzerdefinierte Editoren

  • Externe Editoren

  • Designer

Die folgenden Informationen helfen Ihnen bei der Auswahl des benötigten Editortyps.

Editortypen

Informationen zum Visual Studio Core-Editor finden Sie unter Erweitern des Editors und der Sprachdienste.

Benutzerdefinierte Editoren

Ein benutzerdefinierter Editor ist ein Editor, der auf spezielle Umstände ausgelegt ist. Sie können z. B. einen Editor erstellen, dessen Funktion daten in ein bestimmtes Repository lesen und schreiben soll, z. B. einen Microsoft Exchange-Server. Wählen Sie einen benutzerdefinierten Editor aus, wenn Sie einen Editor verwenden möchten, der nur mit Ihrem Projekttyp funktioniert, oder wenn Sie einen Editor mit nur wenigen bestimmten Befehlen verwenden möchten. Beachten Sie jedoch, dass Benutzer keinen benutzerdefinierten Editor zum Bearbeiten von Visual Studio-Standardprojekten verwenden können.

Ein benutzerdefinierter Editor kann eine Editor-Factory verwenden und Informationen zum Editor zur Registrierung hinzufügen. Der dem benutzerdefinierten Editor zugeordnete Projekttyp kann den benutzerdefinierten Editor jedoch auf andere Weise instanziieren.

Ein benutzerdefinierter Editor kann entweder direkte Aktivierung oder vereinfachtes Einbetten verwenden, um eine Ansicht zu implementieren.

Externe Editoren

Externe Editoren sind Editoren, die nicht in Visual Studio integriert sind, z. B. Microsoft Word, Editor oder Microsoft FrontPage. Sie können einen solchen Editor aufrufen, wenn Sie beispielsweise Text von Ihrem VSPackage an ihn übergeben. Externe Editoren registrieren sich selbst und können außerhalb von Visual Studio verwendet werden. Wenn Sie einen externen Editor aufrufen und in ein Hostfenster eingebettet werden können, wird er in einem Fenster in der IDE angezeigt. Wenn nicht, erstellt die IDE dafür ein separates Fenster.

Die IsDocumentInProject Methode legt die Dokumentpriorität mithilfe der VSDOCUMENTPRIORITY Enumeration fest. Wenn der DP_External Wert angegeben ist, kann die Datei von einem externen Editor geöffnet werden.

Designentscheidungen des Editors

Die folgenden Designfragen helfen Ihnen, den Für Ihre Anwendung am besten geeigneten Editortyp auszuwählen:

  • Speichert Ihre Anwendung ihre Daten in Dateien oder nicht? Wenn die Daten in Dateien gespeichert werden, befinden sie sich in einem benutzerdefinierten oder Standardformat?

    Wenn Sie ein Standarddateiformat verwenden, können andere Projekttypen zusätzlich zu Ihrem Projekt Daten öffnen und lesen/schreiben. Wenn Sie jedoch ein benutzerdefiniertes Dateiformat verwenden, kann nur Ihr Projekttyp Daten öffnen und lesen/schreiben.

    Wenn Ihr Projekt Dateien verwendet, sollten Sie den Standard-Editor anpassen. Wenn Ihr Projekt keine Dateien verwendet, sondern Elemente in einer Datenbank oder einem anderen Repository verwendet, sollten Sie einen benutzerdefinierten Editor erstellen.

  • Muss Ihr Editor ActiveX-Steuerelemente hosten?

    Wenn Ihr Editor ActiveX-Steuerelemente hosten, implementieren Sie einen direkten Aktivierungs-Editor, wie in der direkten Aktivierung beschrieben. Wenn keine ActiveX-Steuerelemente gehostet werden, verwenden Sie entweder einen vereinfachten Einbettungs-Editor, oder passen Sie den Visual Studio-Standard-Editor an.

  • Unterstützt Ihr Editor mehrere Ansichten? Sie müssen mehrere Ansichten unterstützen, wenn Ansichten des Editors gleichzeitig mit dem Standard-Editor angezeigt werden sollen.

    Wenn Ihr Editor mehrere Ansichten unterstützen muss, müssen die Dokumentdaten- und Dokumentansichtsobjekte für den Editor separate Objekte sein. Weitere Informationen finden Sie unter Unterstützen mehrerer Dokumentansichten.

    Wenn Ihr Editor mehrere Ansichten unterstützt, planen Sie, die Textpufferimplementierung (VsTextBuffer Objekt) des Visual Studio-Kern-Editors für Ihr Dokumentdatenobjekt zu verwenden? Das heißt, Sie möchten Ihre Editoransicht nebeneinander mit dem Visual Studio-Core-Editor unterstützen? Dies ist die Grundlage des Formular-Designers.

  • Wenn Sie einen externen Editor hosten müssen, kann der Editor in Visual Studio eingebettet werden?

    Wenn es eingebettet werden kann, sollten Sie ein Hostfenster für den externen Editor erstellen und dann die IsDocumentInProject Methode aufrufen und den VSDOCUMENTPRIORITY Enumerationswert auf DP_Externalfestlegen. Wenn der Editor nicht eingebettet werden kann, erstellt die IDE automatisch ein separates Fenster dafür.

In diesem Abschnitt

Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Editors
Erläutert, wie ein benutzerdefinierter Editor erstellt wird.

Exemplarische Vorgehensweise: Hinzufügen von Features zu einem benutzerdefinierten Editor
Erläutert, wie Einem benutzerdefinierten Editor Features hinzugefügt werden.

Designerinitialisierung und Metadatenkonfiguration
Erläutert, wie ein Designer initialisiert wird.

Bereitstellen von Rückgängig-Unterstützung für Designer
Erläutert, wie Sie Rückgängig-Unterstützung für Designer bereitstellen.

Syntaxfarbe in benutzerdefinierten Editoren
Erläutert den Unterschied zwischen der Syntaxfarbe im Kern-Editor und in benutzerdefinierten Editoren.

Dokumentdaten und Dokumentansicht in benutzerdefinierten Editoren
Erläutert, wie Dokumentdaten und Dokumentansichten in benutzerdefinierten Editoren implementiert werden.