Freigeben über


Auswahlkontextobjekte

Die integrierte Entwicklungsumgebung (Integrated Development Environment, IDE) von Visual Studio verwendet ein globales Auswahlkontextobjekt, um zu bestimmen, was in der IDE angezeigt werden soll. Jedes Fenster in der IDE kann ein eigenes Auswahlkontextobjekt an den globalen Auswahlkontext übertragen haben. Die IDE aktualisiert den globalen Auswahlkontext mit Werten aus einem Fenster, wenn dieses Fenster den Fokus hat. Weitere Informationen finden Sie unter Feedback an den Benutzer.

Jeder Fensterrahmen oder jede Website in der IDE hat einen Dienst namens STrackSelection. Das von Ihrem VSPackage erstellte Objekt, das im Fensterframe bereitgestellt wird, muss die QueryService Methode aufrufen, um einen Zeiger auf die ITrackSelection Schnittstelle abzurufen.

Rahmenfenster können teile ihrer Auswahlkontextinformationen beim Start an den globalen Auswahlkontext weitergeben. Diese Möglichkeit ist nützlich für Toolfenster, die möglicherweise mit einer leeren Auswahl beginnen müssen.

Das Ändern des globalen Auswahlkontexts löst Ereignisse aus, die VSPackages überwachen können. VSPackages können die folgenden Aufgaben durch Implementieren IVsTrackSelectionEx und IVsMonitorSelection Schnittstellen ausführen:

  • Aktualisieren Sie die derzeit aktive Datei in einer Hierarchie.

  • Überwachen sie Änderungen an bestimmten Elementtypen. Wenn Ihr VSPackage beispielsweise ein spezielles Eigenschaftenfenster verwendet, können Sie Änderungen im aktiven Eigenschaftenfenster überwachen und bei Bedarf neu starten.

    Die folgende Sequenz zeigt den typischen Verlauf der Auswahlnachverfolgung.

  1. Die IDE ruft den Auswahlkontext aus dem neu geöffneten Fenster ab und fügt ihn in den globalen Auswahlkontext ein. Wenn der Auswahlkontext HIERARCHY_DONTPROPAGATE oder SELCONTAINER_DONTPROPAGATE verwendet, werden diese Informationen nicht an den globalen Kontext weitergegeben. Weitere Informationen finden Sie unter Feedback an den Benutzer.

  2. Benachrichtigungsereignisse werden an alle VSPackage übertragen, die sie angefordert haben.

  3. Das VSPackage wirkt auf die Ereignisse, die er empfängt, indem Aktivitäten ausgeführt werden, z. B. das Aktualisieren einer Hierarchie, das Reaktivieren eines Tools oder andere ähnliche Aufgaben.

Siehe auch