Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Visual Studio'da komutlar bir dizi farklı bileşen tarafından işlenir. Komutlar, geçerli seçimi temel alan en içteki bağlamdan en dıştaki (genel olarak da bilinir) bağlama yönlendirilir. Daha fazla bilgi için bkz. Komut kullanılabilirliği.
Komut çözümleme sırası
Komutlar aşağıdaki komut bağlamı düzeylerinden geçirilir:
Eklentiler: Ortam, ilk olarak mevcut olan tüm eklentilere komutu sunar.
Öncelik komutları: Bu komutlar kullanılarak IVsRegisterPriorityCommandTargetkaydedilir. Visual Studio'daki her komut için çağrılırlar ve kaydedildikleri sırayla çağrılırlar.
Bağlam menüsü komutları: Bağlam menüsünde bulunan bir komut, önce bağlam menüsüne sağlanan komut hedefine, ardından da tipik yönlendirmeye sunulur.
Araç çubuğu ayar komut hedefleri: SetupToolbar2 çağrıldığında bu komut hedefleri kaydedilir.
pCmdTargetparametresi olabilirnull.nulldeğilse, bu komut hedefi ayarlamakta olduğunuz araç çubuğunda bulunan tüm komutları güncelleştirmek için kullanılır. Kabuk, araç çubuğunuzu ayarlıyorsa, o zaman pencere çerçevesinipCmdTargetolarak iletir, böylece araç çubuğunuzdaki komutlarla ilgili tüm güncelleştirmeler, pencere odakta olmasa bile pencere çerçevesi üzerinden yapılır.Araç penceresi: Genellikle IVsWindowPane arabirimi uygulayan araç pencereleri, araç penceresi etkin pencere olduğunda Visual Studio'nun komut hedefini alabilmesi için IOleCommandTarget arabirimini de uygulamalıdır. Ancak, odaklanan araç penceresi Proje penceresiyse, komut, seçili öğelerin ortak ana üst öğesi olan arabirime yönlendirilir IVsUIHierarchy. Bu seçim birden çok projeyi kapsıyorsa, komut hiyerarşiye IVsSolution yönlendirilir. IVsUIHierarchy arabirimi, QueryStatusCommand ve ExecCommand yöntemlerini içerir ve bu yöntemler IOleCommandTarget arabirimindeki ilgili komutlarla benzerdir.
Belge penceresi: Komutun
RouteToDocsbayrağı .vsct dosyasında ayarlanmışsa, Visual Studio belge görünümü nesnesinde bir komut hedefi arar. Bu, bir arabirimin IVsWindowPane veya belge nesnesinin (genellikle bir IVsTextLines arabirim veya IVsTextBuffer arabirim) bir örneğidir. Belge görünümü nesnesi komutu desteklemiyorsa, Visual Studio komutu döndürülen arabirime IOleCommandTarget yönlendirir. (Bu, belge veri nesneleri için isteğe bağlı bir arabirimdir.)Geçerli hiyerarşi: Geçerli hiyerarşi, etkin belge penceresinin sahibi olan proje veya Çözüm Gezgini'nde seçilen hiyerarşi olabilir. Visual Studio, mevcut veya etkin hiyerarşide uygulanan IOleCommandTarget arabirimini arar. Hiyerarşi etkin olduğunda, bir proje öğesinin belge penceresi odakta olsa bile geçerli olan komutları desteklemelidir. Ancak, yalnızca Çözüm Gezgini'nin odağı olduğunda geçerli olan komutların IVsUIHierarchy arabirimi ve yöntemleri QueryStatusCommandExecCommand kullanılarak desteklenmesi gerekir.
Kes, Kopyala, Yapıştır, Sil, Yeniden Adlandır, Enter ve DoubleClick komutları özel işleme gerektirir. Hiyerarşilerde Delete ve Remove komutlarını işleme hakkında bilgi için arabirime IVsHierarchyDeleteHandler bakın.
Genel: Bir komut daha önce bahsedilen bağlamlar tarafından işlenmediyse, Visual Studio bunu arabirimi uygulayan bir komutun sahibi olan VSPackage'a yönlendirmeyi IOleCommandTarget dener. VSPackage henüz yüklenmemişse, Visual Studio yöntemini çağırdığında QueryStatus yüklenmez. VSPackage, Exec yöntemi çağrıldığında yüklenir.