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.
Bir komut uyguladıktan sonra, kullanıcı arabirimini yeni komutlarınızın durumuyla güncelleştirmek için kod ekleyebilirsiniz.
Tipik bir Win32 uygulamasında komut kümesi sürekli yoklanabilir ve kullanıcı bunları görüntüledikçe tek tek komutların durumu ayarlanabilir. Bununla birlikte, Visual Studio kabuğu sınırsız sayıda VSPackage barındırabildiğinden, kapsamlı yoklama, özellikle yönetilen kod ile COM arasındaki birlikte çalışma derlemeleri arasında yoklama olmak üzere yanıt hızını azaltabilir.
Kullanıcı arabirimini güncelleştirmek için
Aşağıdaki adımlardan birini gerçekleştirin:
yöntemini çağırın UpdateCommandUI .
Bir SVsUIShell arabirim IVsUIShell hizmetinden aşağıdaki gibi elde edilebilir.
void UpdateUI(Microsoft.VisualStudio.Shell.ServiceProvider sp) { IVsUIShell vsShell = (IVsUIShell)sp.GetService(typeof(IVsUIShell)); if (vsShell != null) { int hr = vsShell.UpdateCommandUI(0); Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(hr); } }parametresi UpdateCommandUI sıfır değil ()
TRUEise, güncelleştirme zaman uyumlu ve hemen gerçekleştirilir. İyi bir performans sağlamaya yardımcı olması için bu parametre için sıfır (FALSE) geçirmenizi öneririz. Önbelleğe almayı önlemek istiyorsanız, .vsct dosyasında komutu oluştururkenDontCachebayrağını uygulayın. Bununla birlikte, bayrağını dikkatli bir şekilde kullanın; aksi zaman performans düşebilir. Komut bayrakları hakkında daha fazla bilgi için Komut Bayrağı Öğesi belgelerine bakın.Bir pencere içinde yerinde etkinleştirme modelini kullanarak bir ActiveX denetimini içeren VSPackage'larda, UpdateUI yöntemini kullanmak daha kullanışlı olabilir. UpdateCommandUI Arabirimindeki IVsUIShell yöntemi ve UpdateUI arabirimdeki IOleInPlaceComponentUIManager yöntemi işlevsel olarak eşdeğerdir. Her ikisi de ortamın tüm komutların durumunu yeniden sorgulamasına neden olur. Genellikle, bir güncelleştirme hemen gerçekleştirilmez. Bunun yerine, güncelleştirme boşta kalma süresine kadar geciktirilir. Kabuk, iyi performans sağlamaya yardımcı olmak için komut durumunu önbelleğe alır. Önbelleğe almayı önlemek istiyorsanız, .vsct dosyasında komutu oluştururken
DontCachebayrağını uygulayın. Bununla birlikte, performans düşebileceğinden bayrağını dikkatli bir şekilde kullanın.Dikkat edin, IOleComponentUIManager nesnesinde
QueryInterfaceyöntemini çağırarak veya SOleComponentUIManager hizmetinden arabirimi alarak IOleInPlaceComponentUIManager arabirimini edinebilirsiniz.