Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Visual Studio-ban a parancsokat számos különböző összetevő kezeli. A parancsok a legbelső környezetből, amely az aktuális kijelölésen alapulnak, a legkülső (más néven globális) környezetbe kerülnek. További információ: Parancs rendelkezésre állása.
Parancsmegoldás sorrendje
A parancsok a parancskörnyezet következő szintjein haladnak át:
Bővítmények: A környezet először minden meglévő bővítménynek felajánlja a parancsot.
Prioritási parancsok: Ezeket a parancsokat a IVsRegisterPriorityCommandTarget használatával regisztrálják. A Rendszer meghívja őket a Visual Studio minden parancsára, és a regisztrálásuk sorrendjében lesznek meghívva.
Helyi menüparancsok: A helyi menüben található parancsok először a helyi menüben megadott parancscélnak, majd a tipikus útválasztásnak lesznek felajánlva.
Eszköztár készletének parancscélpontjai: Ezek a parancscélpontok SetupToolbar2 hívásakor lesznek regisztrálva. A
pCmdTargetparaméter lehetnull. Ha nemnull, akkor ez a parancscél a beállított eszköztáron található parancsok frissítésére szolgál. Ha a shell beállítja az eszköztárat, akkor átadja az ablakkeretet mintpCmdTarget, így az eszköztár parancsainak összes frissítése az ablakkereten keresztül történik, még akkor is, ha az nem aktív.Eszközablak: Az eszközablakok, amelyek általában implementálják az IVsWindowPane interfészt, a IOleCommandTarget interfészt is implementálniuk kell, hogy a Visual Studio megkaphassa a parancscélt, amikor az eszközablak az aktív ablak. Ha azonban a fókuszt tartalmazó eszközablak a Project ablak, akkor a parancs a IVsUIHierarchy kijelölt elemek közös szülőfelületéhez lesz irányítva. Ha ez a kijelölés több projektre is kiterjed, a parancs a IVsSolution hierarchiához lesz irányítva. Az IVsUIHierarchy interfész tartalmazza a QueryStatusCommand és ExecCommand metódusokat, amelyek hasonlóak a IOleCommandTarget felület megfelelő parancsaihoz.
Dokumentumablak: Ha a parancs
RouteToDocsfájljában a jelölő van beállítva, a Visual Studio egy parancscélt keres a dokumentumnézet-objektumon, amely vagy egy IVsWindowPane felület vagy egy dokumentumobjektum egy példánya (általában IVsTextLines felület vagy IVsTextBuffer felület). Ha a dokumentumnézet objektuma nem támogatja a parancsot, a Visual Studio a visszaadott felületre irányítja a IOleCommandTarget parancsot. (Ez a dokumentumadat-objektumok opcionális felülete.)Jelenlegi hierarchia: Az aktuális hierarchia lehet az aktív dokumentumablakot birtokoló projekt vagy a Megoldáskezelőben kiválasztott hierarchia. A Visual Studio az IOleCommandTarget aktuális vagy aktív hierarchiában implementált felületet keresi. A hierarchiának támogatnia kell azokat a parancsokat, amelyek akkor is érvényesek, ha a hierarchia aktív, még akkor is, ha egy projektelem dokumentumablaka fókuszban van. Azokat a parancsokat azonban, amelyek csak akkor érvényesek, ha a Megoldáskezelő fókuszba kerül, a felület, valamint annak IVsUIHierarchyQueryStatusCommand és ExecCommand módszereinek használatával kell támogatni.
A Kivágás, Másolás, Beillesztés, Törlés, Átnevezés, Enter és DoubleClick parancsok speciális kezelést igényelnek. A törlési és eltávolítási parancsok hierarchiákban való kezelésével kapcsolatos információkért tekintse meg a IVsHierarchyDeleteHandler felületet.
Globális: Ha egy parancsot nem a korábban említett környezetek kezelnek, a Visual Studio megpróbálja átirányítani azt a VSPackage-hez, amely egy olyan parancsot birtokol, amely implementálja a IOleCommandTarget felületet. Ha a VSPackage még nincs betöltve, akkor a rendszer nem tölti be, amikor a Visual Studio meghívja a metódust QueryStatus . A VSPackage csak a Exec metódus meghívásakor töltődik be.