Özel görev bölmeleri
Görev bölmeleri, genellikle Bir Microsoft Office uygulaması lication'da pencerenin bir tarafına yerleştirilmiş kullanıcı arabirimi panelleridir. Özel görev bölmeleri size kendi görev bölmenizi oluşturmanın bir yolunu sunar ve kullanıcılara çözümünüzün özelliklerine erişmek için tanıdık bir arabirim sağlar. Örneğin, arabirim, belgeleri değiştirmek veya bir veri kaynağındaki verileri görüntülemek için kod çalıştıran denetimler içerebilir.
Şunlar için geçerlidir: Bu konudaki bilgiler Outlook için VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.
Not
Özel görev bölmesi eylemler bölmesinden farklıdır. Eylemler bölmesi, Microsoft Office Word ve Microsoft Office Excel için belge düzeyi özelleştirmelerinin bir parçasıdır. Daha fazla bilgi için bkz . Eylemler bölmesine genel bakış.
Özel görev bölmelerinin avantajları
Özel görev bölmeleri, özelliklerinizi tanıdık bir kullanıcı arabirimiyle tümleştirmenize olanak tanır. Visual Studio araçlarını kullanarak hızlı bir şekilde özel görev bölmesi oluşturabilirsiniz.
Tanıdık kullanıcı arabirimi
Microsoft Office sistemindeki uygulama kullanıcıları Word'de Stiller ve Biçimlendirme görev bölmesi gibi görev bölmelerini kullanmayı zaten biliyor. Özel görev bölmeleri, Microsoft Office sistemindeki diğer görev bölmeleri gibi davranır. Kullanıcılar özel görev bölmelerini uygulama penceresinin farklı kenarlarına yerleştirebilir veya özel görev bölmelerini penceredeki herhangi bir konuma sürükleyebilirsiniz. Aynı anda birden çok özel görev bölmesi görüntüleyen bir VSTO Eklentisi oluşturabilirsiniz ve kullanıcılar her görev bölmesini tek tek denetleyebilir.
Windows forms desteği
Visual Studio'da Office geliştirme araçlarını kullanarak oluşturduğunuz özel görev bölmesinin kullanıcı arabirimi Windows Forms denetimlerini temel alır. Özel görev bölmesi için kullanıcı arabirimi tasarlamak için tanıdık Windows Forms Tasarım Aracı kullanabilirsiniz. Bir veri kaynağını görev bölmesindeki denetimlere bağlamak için Windows Forms'daki veri bağlama desteğini de kullanabilirsiniz.
Özel görev bölmesi oluşturma
İki adımda temel bir özel görev bölmesi oluşturabilirsiniz:
Nesneye Windows Forms denetimleri ekleyerek özel görev bölmeniz için bir UserControl kullanıcı arabirimi oluşturun.
Kullanıcı denetimini VSTO Eklentinizdeki nesneye CustomTaskPaneCollection geçirerek özel görev bölmesinin örneğini oluşturun. Bu koleksiyon, görev bölmesinin görünümünü değiştirmek ve kullanıcı olaylarına yanıt vermek için kullanabileceğiniz yeni CustomTaskPane bir nesne döndürür.
Daha fazla bilgi için bkz . Nasıl yapılır: Uygulamaya özel görev bölmesi ekleme.
Kullanıcı arabirimini oluşturma
Visual Studio'da Office geliştirme araçları kullanılarak oluşturulan tüm özel görev bölmeleri bir UserControl nesne içerir. Bu kullanıcı denetimi, özel görev bölmenizin kullanıcı arabirimini sağlar. Kullanıcı denetimini tasarım zamanında veya çalışma zamanında oluşturabilirsiniz. Kullanıcı denetimini tasarım zamanında oluşturursanız, görev bölmenizin kullanıcı arabirimini oluşturmak için Windows Forms Tasarım Aracı kullanabilirsiniz.
Özel görev bölmesinin örneğini oluşturma
Özel görev bölmesinin kullanıcı arabirimini içeren bir kullanıcı denetimi oluşturduktan sonra bir örneği CustomTaskPaneoluşturmanız gerekir. Bunu yapmak için yöntemlerden birini Add çağırarak VSTO Eklentinizde kullanıcı denetimini CustomTaskPaneCollection öğesine geçirin. Bu koleksiyon sınıfın CustomTaskPanes
alanı ThisAddIn
olarak kullanıma sunulur. Aşağıdaki kod örneğinin sınıfından ThisAddIn
çalıştırılması amaçlanmıştır.
myUserControl1 = new MyUserControl();
myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "My Task Pane");
myCustomTaskPane.Visible = true;
Add Yöntemler yeni CustomTaskPane bir nesne döndürür. Görev bölmesinin görünümünü değiştirmek ve kullanıcı olaylarına yanıt vermek için bu nesneyi kullanabilirsiniz.
Birden çok penceredeki görev bölmesini denetleme
Özel görev bölmeleri, kullanıcıya belgenin veya öğenin görünümünü sunan bir belge çerçevesi penceresiyle ilişkilendirilir. Görev bölmesi yalnızca ilişkili pencere görünür olduğunda görünür.
Özel görev bölmesinin hangi pencerede görüntüleneceğini belirlemek için, görev bölmesini oluştururken uygun Add yöntem aşırı yüklemesini kullanın:
Görev bölmesini etkin pencereyle ilişkilendirmek Add için yöntemini kullanın.
Görev bölmesini belirtilen bir pencere tarafından barındırılan bir belgeyle ilişkilendirmek Add için yöntemini kullanın.
Bazı Office uygulaması'ler, birden fazla pencere açık olduğunda görev bölmenizi ne zaman oluşturacağınız veya görüntüleneceğini açıklayan açık yönergeler gerektirir. Bu, görev bölmesinin uygulamadaki uygun belgeler veya öğelerle birlikte göründüğünden emin olmak için kodunuzda özel görev bölmesinin nerede başlatıldığını göz önünde bulundurmayı önemli hale getirir. Daha fazla bilgi için bkz . Uygulama pencerelerinde özel görev bölmelerini yönetme.
Uygulamaya Görev Bölmesi'nden erişme
Uygulamayı kullanıcı denetiminden otomatikleştirmek istiyorsanız, kodunuzda kullanarak Globals.ThisAddIn.Application
nesne modeline doğrudan erişebilirsiniz. Statik Globals
sınıf nesneye ThisAddIn
erişim sağlar. Application
Bu nesnenin alanı, uygulamanın nesne modeline giriş noktasıdır.
Nesnenin Application
alanı ThisAddIn
hakkında daha fazla bilgi için bkz . Program VSTO Eklentileri. Bir uygulamanın özel görev bölmesinden nasıl otomatikleştirildiğini gösteren bir izlenecek yol için bkz . İzlenecek yol: Özel görev bölmesinden uygulamayı otomatikleştirme. Sınıfı hakkında Globals
daha fazla bilgi için bkz . Office projelerindeki nesnelere genel erişim.
Görev Bölmesi'nin kullanıcı arabirimini yönetme
Görev bölmesini oluşturduktan sonra, görev bölmesinin CustomTaskPane kullanıcı arabirimini denetlemek ve kullanıcı görev bölmesini değiştirdiğinde yanıt vermek için nesnenin özelliklerini ve olaylarını kullanabilirsiniz.
Özel Görev Bölmesi'ni görünür hale getirme
Varsayılan olarak, görev bölmesi görünmez. Görev bölmesini görünür hale getirmek için özelliğini true olarak ayarlamanız Visible gerekir.
Kullanıcılar, görev bölmesinin köşesindeki Kapat düğmesine (X) tıklayarak istedikleri zaman görev bölmesini kapatabilir. Ancak, kullanıcıların özel görev bölmesini yeniden açması için varsayılan bir yol yoktur. Bir kullanıcı özel görev bölmesini kapatırsa, siz görüntülemenin bir yolunu sağlamadığınız sürece bu kullanıcı özel görev bölmesini yeniden görüntüleyemez.
VSTO Eklentinizde özel görev bölmesi oluşturursanız, kullanıcıların özel görev bölmenizi görüntülemek veya gizlemek için tıklayabileceği bir düğme gibi bir kullanıcı arabirimi öğesi de oluşturmanız gerekir. Microsoft Office uygulaması'nda Şeridi özelleştirmeyi destekleyen bir özel görev bölmesi oluşturursanız, Şerit'e özel görev bölmenizi görüntüleyen veya gizleyen bir düğme içeren bir denetim grubu ekleyebilirsiniz. Bunun nasıl yapıldığını gösteren bir izlenecek yol için bkz . İzlenecek yol: Şerit düğmesiyle özel görev bölmesini eşitleme.
Microsoft Office uygulaması'nde Şeridi özelleştirmeyi desteklemeyen bir özel görev bölmesi oluşturursanız, özel görev bölmenizi görüntüleyen veya gizleyen bir CommandBarButton görev ekleyebilirsiniz.
Görev bölmesinin görünümünü değiştirme
Nesnenin özelliklerini CustomTaskPane kullanarak özel görev bölmesinin boyutunu ve konumunu denetleyebilirsiniz. Özel görev bölmesinde bulunan nesnenin UserControl özelliklerini kullanarak özel görev bölmesinin görünümünde başka birçok değişiklik yapabilirsiniz. Örneğin, kullanıcı denetiminin özelliğini kullanarak BackgroundImage özel görev bölmesi için bir arka plan görüntüsü belirtebilirsiniz.
Aşağıdaki tabloda, özellikleri kullanarak CustomTaskPane özel görev bölmesinde yapabileceğiniz değişiklikler listelenir.
Görev | Özellik |
---|---|
Görev bölmesinin boyutunu değiştirmek için | Height Width |
Görev bölmesinin konumunu değiştirmek için | DockPosition |
Görev bölmesini gizlemek veya görünür hale getirmek için | Visible |
Kullanıcının görev bölmesinin konumunu değiştirmesini önlemek için | DockPositionRestrict |
Program özel görev bölmesi olayları
Kullanıcı özel görev bölmesini değiştirdiğinde VSTO Eklentinizin yanıt vermesini isteyebilirsiniz. Örneğin, kullanıcı bölmenin yönünü dikeyden yataya değiştirirse denetimleri yeniden konumlandırmak isteyebilirsiniz.
Aşağıdaki tabloda, kullanıcının özel görev bölmesinde yaptığı değişikliklere yanıt vermek için işleyebileceğiniz olaylar listelenir.
Görev | Etkinlik |
---|---|
Kullanıcı görev bölmesinin konumunu değiştirdiğinde yanıtlamak için. | DockPositionChanged |
Kullanıcı görev bölmesini gizlediğinde veya görünür hale getirdiğinde yanıt vermek için. | VisibleChanged |
Görev bölmesi tarafından kullanılan kaynakları temizleme
Özel görev bölmesi oluşturduktan sonra, CustomTaskPane VSTO Eklentiniz çalıştığı sürece nesne bellekte kalır. Kullanıcı görev bölmesinin köşesindeki Kapat düğmesine (X) tıkladıktan sonra bile nesne bellekte kalır.
VSTO Eklentisi çalışmaya devam ederken görev bölmesi tarafından kullanılan kaynakları temizlemek için veya RemoveAt yöntemlerini kullanınRemove. Bu yöntemler belirtilen CustomTaskPane nesneyi koleksiyondan CustomTaskPanes
kaldırır ve nesnesinin Dispose
yöntemini çağırır.
Office çalışma zamanı için Visual Studio Araçları, VSTO Eklentisi kaldırıldığında özel görev bölmesi tarafından kullanılan kaynakları otomatik olarak temizler. Projenizdeki olay işleyicisinde ThisAddIn_Shutdown
veya RemoveAt yöntemlerini çağırmayınRemove. Office çalışma zamanı Visual Studio Araçları nesnesi tarafından CustomTaskPane daha önce ThisAddIn_Shutdown
kullanılan kaynakları temizlediğinden, bu yöntemler bir ObjectDisposedExceptionoluşturur. hakkında ThisAddIn_Shutdown
daha fazla bilgi için bkz . Office projelerindeki olaylar.
Birden çok uygulama penceresinde özel görev bölmelerini yönetme
Belge ve diğer öğeleri görüntülemek için birden çok pencere kullanan bir uygulamada özel görev bölmesi oluşturduğunuzda, kullanıcı bunu beklediğinde görev bölmesinin görünür olduğundan emin olmak için ek adımlar uygulamanız gerekir.
Tüm uygulamalarda özel görev bölmeleri, kullanıcıya belgenin veya öğenin görünümünü sunan bir belge çerçevesi penceresiyle ilişkilendirilir. Görev bölmesi yalnızca ilişkili pencere görünür olduğunda görünür. Ancak, tüm uygulamalar belge çerçevesi pencerelerini aynı şekilde kullanmaz.
Aşağıdaki uygulama gruplarının farklı geliştirme gereksinimleri vardır:
Outlook
Outlook için özel görev bölmesi oluşturduğunuzda, özel görev bölmesi belirli bir Gezgin veya Denetçi penceresiyle ilişkilendirilir. Explorer'lar bir klasörün içeriğini görüntüleyen pencerelerdir ve Denetçiler ise e-posta iletisi veya görev gibi bir öğeyi görüntüleyen pencerelerdir.
Birden çok Gezgin veya Denetçi penceresi içeren bir özel görev bölmesi görüntülemek istiyorsanız, bir Gezgin veya Denetçi penceresi açıldığında özel görev bölmesinin yeni bir örneğini oluşturmanız gerekir. Bunu yapmak için, Gezgin veya Denetçi penceresi oluşturulduğunda oluşturulan bir olayı işleyin ve ardından olay işleyicisinde görev bölmesini oluşturun. Ayrıca, hangi pencerenin görünür olduğuna bağlı olarak görev bölmelerini gizlemek veya görüntülemek için Gezgin ve Denetçi olaylarını da işleyebilirsiniz.
Görev bölmesini belirli bir Gezgin veya Denetçi ile ilişkilendirmek için yöntemini kullanarak Add görev bölmesini oluşturun ve veya Inspector nesnesini pencere parametresine geçirinExplorer. Özel görev bölmeleri oluşturma hakkında daha fazla bilgi için bkz . Özel görev bölmelerine genel bakış.
-
Denetçi pencerelerinin durumunu izlemek için, denetçiyle ilgili aşağıdaki olayları işleyebilirsiniz:
Outlook'ta özel görev bölmesinin birden çok örneğini engelleme
Outlook pencerelerinin özel görev bölmesinin birden çok örneğini görüntülemesini önlemek için, her pencere kapatıldığında özel görev bölmesini sınıfın ThisAddIn
koleksiyonundan CustomTaskPanes
açıkça kaldırın. Remove veya Closegibi Close bir pencere kapatıldığında tetiklenen bir olayda yöntemini çağırın.
Özel görev bölmesini açıkça kaldırmazsanız, Outlook pencereleri özel görev bölmesinin birden çok örneğini görüntüleyebilir. Outlook bazen pencereleri geri dönüştürür ve geri dönüştürülen pencereler, bunlara eklenmiş olan özel görev bölmelerine yönelik başvuruları korur.
Word, InfoPath ve PowerPoint
Word, InfoPath ve PowerPoint her belgeyi farklı bir belge çerçevesi penceresinde görüntüler. Bu uygulamalar için özel görev bölmesi oluşturduğunuzda, özel görev bölmesi yalnızca belirli bir belgeyle ilişkilendirilir. Kullanıcı farklı bir belge açarsa, önceki belge yeniden görünene kadar özel görev bölmesi gizlenir.
Birden çok belge içeren bir özel görev bölmesi görüntülemek istiyorsanız, kullanıcı yeni bir belge oluşturduğunda veya var olan bir belgeyi açtığında özel görev bölmesinin yeni bir örneğini oluşturun. Bunu yapmak için, bir belge oluşturulduğunda veya açıldığında oluşan olayları işleyin ve ardından olay işleyicilerinde görev bölmesini oluşturun. Ayrıca, hangi belgenin görünür olduğuna bağlı olarak görev bölmelerini gizlemek veya görüntülemek için belge olaylarını işleyebilirsiniz.
Görev bölmesini belirli bir belge penceresiyle ilişkilendirmek için yöntemini kullanarak Add görev bölmesini oluşturun ve pencere parametresine bir Window (Word için), WindowObject (InfoPath için) veya DocumentWindow (PowerPoint için) geçirin.
Word olayları
Word'de belge pencerelerinin durumunu izlemek için aşağıdaki olayları işleyebilirsiniz:
InfoPath olayları
InfoPath'te belge pencerelerinin durumunu izlemek için aşağıdaki olayları işleyebilirsiniz:
PowerPoint olayları
PowerPoint'te belge pencerelerinin durumunu izlemek için aşağıdaki olayları işleyebilirsiniz:
Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterNewPresentation
Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterPresentationOpen
Microsoft.Office.Interop.PowerPoint.EApplication_Event.NewPresentation
Microsoft.Office.Interop.PowerPoint.EApplication_Event.PresentationOpen
Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowActivate
Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowDeactivate