Freigeben über


Auswahl und Aktualität in der IDE

Die integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) von Visual Studio Standard enthält Informationen zu den aktuell ausgewählten Objekten des Benutzers mithilfe des Auswahlkontexts. Mit dem Auswahlkontext können VSPackages auf zwei Arten an der Währungsnachverfolgung teilnehmen:

  • Durch Weitergabe von Währungsinformationen zu den VSPackages an die IDE.

  • Durch die Überwachung der derzeit aktiven Auswahl von Benutzern innerhalb der IDE.

Auswahlkontext

Die Visual Studio-IDE verfolgt global die IDE-Währung in einem eigenen globalen Auswahlkontextobjekt. In der folgenden Tabelle sind die Elemente aufgeführt, aus denen der Auswahlkontext besteht.

Element Beschreibung
Aktuelle Hierarchie In der Regel das aktuelle Projekt; eine NULL-aktuelle Hierarchie gibt an, dass die Lösung als Ganzes aktuell ist.
Aktuelle ItemID Das ausgewählte Element in der aktuellen Hierarchie; Wenn in einem Projektfenster mehrere Auswahlmöglichkeiten vorhanden sind, können mehrere aktuelle Elemente vorhanden sein.
Aktuellen SelectionContainer Enthält mindestens ein Objekt, für das die Eigenschaftenfenster Eigenschaften anzeigen soll.

Darüber hinaus enthält die Umgebung zwei globale Listen Standard:

  • Eine Liste der aktiven Benutzeroberflächenbefehlsbezeichner

  • Eine Liste der derzeit aktiven Elementtypen.

Fenstertypen und Auswahl

Die Visual Studio-IDE organisiert Fenster in zwei allgemeine Typen:

  • Hierarchietypfenster

  • Rahmenfenster, z. B. Tool- und Dokumentfenster

    Die IDE verfolgt währungen für jeden dieser Fenstertypen unterschiedlich.

    Das am häufigsten verwendete Projekttypfenster ist der Projektmappen-Explorer, den die IDE steuert. Ein Projekttypfenster verfolgt die globale Hierarchie und ItemID des globalen Auswahlkontexts, und das Fenster basiert auf der Auswahl des Benutzers, um die aktuelle Hierarchie zu bestimmen. Für Projekttypfenster stellt die Umgebung den globalen Dienst SVsShellMonitorSelectionbereit, über den VSPackages die aktuellen Werte für offene Elemente überwachen kann. Das Durchsuchen von Eigenschaften in der Umgebung wird von diesem globalen Dienst gesteuert.

    Rahmenfenster hingegen verwenden das DocObject im Rahmenfenster, um den SelectionContext-Wert (hierarchie/ItemID/SelectionContainer trio) zu verschieben. . Rahmenfenster verwenden den Dienst SVsShellMonitorSelection für diesen Zweck. Das DocObject kann nur Werte für den Auswahlcontainer pushen, sodass die lokalen Werte für Hierarchie und ItemID unverändert bleiben, wie für untergeordnete MDI-Dokumente.

Ereignisse und Währungen

Es können zwei Arten von Ereignissen auftreten, die sich auf das Konzept der Währung auswirken:

  • Ereignisse, die an die globale Ebene weitergegeben werden, und ändern den Fensterrahmenauswahlkontext. Beispiele für diese Art von Ereignis sind ein geöffnetes untergeordnetes MDI-Fenster, ein globales Toolfenster, das geöffnet wird, oder ein Projekttyp-Toolfenster, das geöffnet wird.

  • Ereignisse, die die im Auswahlkontext des Fensterrahmens nachverfolgten Elemente ändern. Beispiele hierfür sind das Ändern der Auswahl in einem DocObject oder das Ändern der Auswahl in einem Projekttypfenster.