İzlenecek Yol: Outlook'ta Tasarlanan Form Bölgesini İçeri Aktarma
Bu anlatımda, bir Microsoft Office Outlook formunun nasıl tasarlanacağı ve Yeni Outlook Form Bölgesi sihirbazını kullanarak bir form bölgesinin Outlook ekenti projesine nasıl içeri aktarılacağı gösterilir.Outlook'da form bölgesi tasarlamak, yerel Office denetimlerini Outlook verisi bağlayan form bölgesine eklemenize olanak sağlar.Form bölgesini içeri aktardıktan sonra, her denetimin olayını işleyebilirsiniz.
Uygulama hedefi: Bu konudaki bilgiler, Outlook 2013 ve Outlook 2010 için uygulama düzeyi projelere yöneliktir. Daha fazla bilgi edinmek için, bkz. Office Uygulaması ve Proje Türüne Göre Kullanılabilir Özellikler.
Bu örneklerde aşağıdaki görevler gösterilir:
Outlook'taki form bölgesi tasarımcısını kullanarak form bölgesi tasarlama.
Form bölgesini Outlook eklenti projesine içeri aktarma.
Form bölgesindeki denetimlerin olaylarını işleme.
[!NOT]
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazıları için farklı adlar veya konumlar gösterebilir. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için, bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.
Önkoşullar
Bu örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:
Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2013 sürümü. Daha fazla bilgi edinmek için, bkz. Office Çözümleri Geliştirmek İçin Bilgisayarı Yapılandırma.
Outlook 2013 veya Outlook 2010.
[!NOT]
Bilgisayarınız, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arayüzü öğelerinden bazıları için farklı adlar veya konumlar gösterebilir.Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler.Daha fazla bilgi için bkz. Visual Studio'da Geliştirme Ayarlarını özelleştirme.
İlgili video gösterimi için bkz: nasıl yapmak ı: oluşturma Outlook Form bölgeleri kullanarak Visual Studio 2008?.
Outlook'taki Form Bölgesi Tasarımcısını Kullanarak Form Bölgesi Tasarlama
Bu adımda, Outlook'da bir form bölgesi tasarlayacaksınız.Daha sonra form bölgesini Visual Studio'a içeri aktarmak için, onu kolay bulunur bir konuma kaydedeksiniz.
Bu örnekte form bölgesi normal Görev formuyla tamamen değiştirilir.Bu, ana görev gerçekleştirilmeden (önkoşul görevleri) önce tamamlanması gereken tüm görevlerin ilerlemesini izlemek için bir yol sağlar.Form bölgesi önkoşul görevlerinin bir listesini görüntüler ve listedeki her görevin tamamlanma durumunu gösterir.Kullanıcılar listeye görevler ekleyebilir ve onları kaldırabilir.Ayrıca her görevin tamamlanma durumunu yenileyebilirler.
Outlook'taki form bölgesi tasarımcısını kullanarak form bölgesi tasarlamak için
Microsoft Office Outlook'u başlatın.
Outlook'ta, üzerinde Developer sekmesinde bir Form Tasarım.Daha fazla bilgi için bkz. Nasıl Yapılır: Şeritte Geliştirici Sekmesini Gösterme.
Form Tasarla kutusunda, Görev'i tıklatın ve sonradan Aç'ı tıklatın.
Outlook'ta, üzerinde Geliştirici sekmesini Tasarım 'ı tıklatın, grup Yeni Form bölgesi.
Yeni bir form bölgesi açılır.Alan Seçici görünmezse, Araçlar grubunda Alan Seçici'yi tıklatın.
Konu alanını ve Alan Seçici'den % Tamamlandı alanını form bölgesine sürükleyin.
Araçlar grubunda, Denetim Araç Kutusu'nu, Araç Kutusu'nu açmak için tıklatın.
Araç Kutusu'ndan bir Etiket'i form bölgesine sürükleyin.Konu'nun altındaki etiketi ve % Tamamlandı alanlarını konumlandırın.
Etiketi sağ tıklatın ve Gelişmiş Özellikler’i tıklatın.
İçinde özellikleri penceresinde, Resim yazısı özelliği bu görev aşağıdaki görevlere bağlıdır, Ayarla genişliği özelliğine 200 tıklatın ve sonra Uygula.
Araç Kutusu'ndan form bölgesine ListBox denetimi sürükleyin.Liste kutusunu, Bu görev aşağıdaki görevlere bağlıdır etiketinin altına konumlandırın.
Eklediğiniz liste kutusunu seçin.
İçinde özelliklerini penceresinde, genişliği için 300 tıklatın ve sonra Uygula.
Araç Kutusu'ndan bir Etiket'i form bölgesine sürükleyin.Liste kutusunun altına etiketi konumlandırın.
Eklediğiniz etiketi seçin.
İçinde özelliklerini penceresinde, Resim yazısı özelliği, bağımlı görevler listesine eklemek için br görev seçin genişliği özelliğine 200 tıklatın ve sonra Uygula.
Toolbox’dan form bölgesi üzerine bir ComboBox denetimi sürükleyin.Birleşik giriş kutusunu, Bağımlı görevler listesine eklemek için br görev seçin etiketinin altına konumlandırın.
Eklediğiniz birleşik giriş kutusunu seçin.
İçinde özellikleri penceresinde, genişliği özelliği, 300 ve sonra Uygula.
Araç Kutusu'ndan form bölgesine CommandButton denetimi sürükleyin.Komut düğmesini birleşik giriş kutusunun yanına konumlandırın.
Eklediğiniz komut düğmesini seçin.
İçinde özelliklerini penceresinde, adı AddDependentTask için ayarlayın Resim yazısı bağımlı görev eklemek için genişliği için 100 tıklatın ve sonra Uygula.
Alan Seçici'de Yeni'yi tıklatın.
İçinde Yeni alan iletişim kutusunda, tür hiddenField içinde adı alan ve ardından Tamam.
hiddenField alanını ve Alan Seçici'den % Tamamlandı alanını form bölgesine sürükleyin.
İçinde özelliklerini penceresinde, görünür 0 - False ve ardından Uygula.
Outlook'ta, üzerinde Geliştirici sekmesini Tasarım tıklatın, grup kaydetmek düğmesini tıklatın ve ardından Form bölgesini Farklı Kaydet.
TaskFormRegion form bölgesini isimlendirin ve bilgisayarınızdaki yerel dizine kaydedin.
Outlook, form bölgesini Outlook Form Depolama Birimleri (.ofs) dosyası olarak kaydeder.Form bölgesi TaskFormRegion.ofs ismiyle kaydedilir.
Outlook'tan çıkın.
Yeni Outlook Eklenti Projesi Oluşturma
Bu adımda, Outlook eklenti projesi oluşturacaksınız.Bu anlatımın sonrasında, form bölgesini projeye içeri aktaracaksınız.
Yeni Outlook eklenti projesi oluşturmak için
İçinde Visual Studio, TaskAddIn bir Outlook eklenti projesi oluşturun.
Yeni Proje iletişim kutusunda Çözüm için Dizin Oluştur'u şeçin.
Projeyi varsayılan proje dizinine kaydedin.
Daha fazla bilgi için bkz. Nasıl Yapılır: Visual Studio'da Office Projeleri Oluşturma.
Form Bölgesini İçeri Aktarma
Outlook'da tasarladığınız form bölgesini Outlook eklenti projesine, Yeni Outlook Form Bölgesi sihirbazını kullanarak içeri aktarabilirsiniz.
Outlook eklenti projesine bir form bölgesi içeri aktarmak için
Çözüm Gezgini'nde TaskAddIn projesini sağ tıklatın, Ekle'nin üzerine gelin ve Yeni Öğe'yi tıklatın.
İçinde şablonları bölmesinde, select Outlook Form bölgesi, dosyayı TaskFormRegion olarak adlandırın ve sonra ' Ekle.
YeniOutlook Form Bölgesi sihirbazı başlar.
Form bölgesini nasıl oluşturmak istediğinizi seçin sayfasında, Outlook Form Depolama Birimleri (.ofs) Dosyasını İçeri Aktar'ı tıklatın ve sonra Gözat'ı tıklatın.
İçinde Varolan Outlook Form bölgesi dosya konumu , TaskFormRegion.ofs, select TaskFormRegion.ofs konuma Gözat iletişim kutusunu tıklatın açık[NULL]'ı İleri.
Oluşturmak istediğiniz form bölgesinin türünü seçin sayfasında, Hepsini Değiş'i tıklatın ve ardından İleri'yi tıklatın.
hepsini değiştir form bölgesi tüm Outlook formu değiştirir.Form bölgesi türleri hakkında daha fazla bilgi için, bkz. Outlook Form Bölgeleri Oluşturma.
Tanımlayıcı metin girin ve görüntüleme tercihlerini seçin sayfasında, İleri'yi tıklatın.
Üzerinde , bu form bölgesini görüntüleyecek ileti sınıflarını tanımlayın sayfa içinde hangi özel ileti sınıfları bu form bölgesini görüntüleyecek alanı IPM yazın.Task.TaskFormRegion tıklatın ve sonra Son.
TaskFormRegion.cs veya TaskFormRegion.vb dosyası projenize eklenir.
Form Bölgesindeki Denetimlerin Olaylarını İşleme
Projenizde form bölgesi olduğunda, Outlook'daki form bölgesine eklediğiniz düğmenin Microsoft.Office.Interop.Outlook.OlkCommandButton.Click olayını işleyen kodu ekleyebilirsiniz.
Ayrıca, form bölgesi açıldığında form bölgesindeki denetimleri güncelleyen FormRegionShowing olayına kodu ekleyin.
Form bölgesindeki denetimlerin olaylarını işlemek için
Çözüm Gezgini'nde, ThisDocumen.cs veya ThisDocument.vb dosyasını sağ tıklatın ve sonra Kodu Göster'i tıklatın.
TaskFormRegion.cs veya TaskFormRegion.vb, Kod Düzenleyici'de açılır.
Aşağıdaki kodu TaskFormRegion sınıfına ekleyin.Bu kod, form bölgesindeki birleşik giriş kutusunu Outlook Tasks klasöründeki her görevin konu satırı ile doldurur.
Private Sub populateComboBox() Dim Application As New Outlook.Application() Dim outlookNameSpace As Outlook.NameSpace = _ Application.GetNamespace("MAPI") Dim taskFolder As Outlook.MAPIFolder = _ outlookNameSpace.GetDefaultFolder _ (Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderTasks) Dim taskItems As Outlook.Items = taskFolder.Items Dim task As Outlook.TaskItem For Each task In taskItems If Not (task.Subject Is Nothing) Then comboBox1.AddItem(task.Subject, System.Type.Missing) End If Next task comboBox1.Text = comboBox1.GetItem(0) End Sub
private void populateComboBox() { Outlook.Application Application = new Outlook.Application(); Outlook.NameSpace outlookNameSpace = Application.GetNamespace("MAPI"); Outlook.MAPIFolder taskFolder = outlookNameSpace.GetDefaultFolder( Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderTasks); Outlook.Items taskItems = taskFolder.Items; foreach (Outlook.TaskItem task in taskItems) { if (task.Subject != null) { comboBox1.AddItem(task.Subject, System.Type.Missing); } } comboBox1.Text = comboBox1.GetItem(0); }
Aşağıdaki kodu TaskFormRegion sınıfına ekleyin.Bu kod aşağıdaki görevleri gerçekleştirir:
Tasks klasöründeki istenen Microsoft.Office.Interop.Outlook.TaskItem'ı, FindTaskBySubjectName yardımcı yöntemini çağırarak ve her görevin konusunu geçirerek konumlandırır.İlerideki adımda FindTaskBySubjectName yardımcı yöntemini ekleyeceksiniz.
Microsoft.Office.Interop.Outlook.TaskItem.Subject ve Microsoft.Office.Interop.Outlook.TaskItem.PercentComplete değerlerini bağımlı görev liste kutusuna ekler.
Her görevin konusunu, form bölgesindeki gizli alana ekler.Gizli alan bu değerleri Outlook öğesinin bir parçası olarak kaydeder.
Private Sub AddDependentTask_Click1() Handles addDependentTask.Click Dim tempTaskItem As Outlook.TaskItem = FindTaskBySubjectName _ (comboBox1.Text) If Not (tempTaskItem Is Nothing) Then Me.listBox1.AddItem(tempTaskItem.PercentComplete.ToString() & _ "% Complete -- " & tempTaskItem.Subject, System.Type.Missing) Me.olkTextBox3.Text = Me.olkTextBox3.Text & "|" & tempTaskItem.Subject End If End Sub
void AddDependentTask_Click() { Outlook.TaskItem tempTaskItem = FindTaskBySubjectName(comboBox1.Text); if (tempTaskItem != null) { this.listBox1.AddItem(tempTaskItem.PercentComplete.ToString() + "% Complete -- " + tempTaskItem.Subject, System.Type.Missing); this.olkTextBox3.Text = this.olkTextBox3.Text + "|" + tempTaskItem.Subject; } }
Aşağıdaki kodu TaskFormRegion sınıfına ekleyin.Bu kod, önceki adımlarda tanımlanan FindTaskBySubjectName yardımcı yöntemlerini sağlar.
Private Function FindTaskBySubjectName(ByVal subjectName As String) _ As Outlook.TaskItem Dim Application As New Outlook.Application() Dim outlookNameSpace As Outlook.NameSpace = _ Application.GetNamespace("MAPI") Dim tasksFolder As Outlook.MAPIFolder = _ outlookNameSpace.GetDefaultFolder _ (Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderTasks) Dim taskItems As Outlook.Items = tasksFolder.Items Dim taskItem As Outlook.TaskItem For Each taskItem In taskItems If taskItem.Subject = subjectName Then Return taskItem End If Next taskItem Return Nothing End Function
private Outlook.TaskItem FindTaskBySubjectName(string subjectName) { Outlook.Application Application = new Outlook.Application(); Outlook.NameSpace outlookNameSpace = Application.GetNamespace("MAPI"); Outlook.MAPIFolder tasksFolder = outlookNameSpace.GetDefaultFolder( Microsoft.Office.Interop.Outlook. OlDefaultFolders.olFolderTasks); Outlook.Items taskItems = tasksFolder.Items; foreach (Outlook.TaskItem taskItem in taskItems) { if (taskItem.Subject == subjectName) { return taskItem; } } return null; }
Aşağıdaki kodu TaskFormRegion sınıfına ekleyin.Bu kod aşağıdaki görevleri gerçekleştirir:
Form bölgesindeki liste kutusunu, her bağımlı görevin geçerli tamamlanma durumuyla yeniler.
Gizli metin alanını, her bağımlı görevin konusunu elde etmek için ayrıştırır.Daha sonra, Tasks klasöründeki her Microsoft.Office.Interop.Outlook.TaskItem'ı, FindTaskBySubjectName yardımcı yöntemini çağırarak ve her görevin konusunu geçirerek konumlandırır.
Microsoft.Office.Interop.Outlook.TaskItem.Subject ve Microsoft.Office.Interop.Outlook.TaskItem.PercentComplete değerlerini bağımlı görev liste kutusuna ekler.
Private Sub RefreshTaskListBox() listBox1.Clear() Dim tempTaskItem As Outlook.TaskItem Dim tempArray As [String]() = olkTextBox3.Text.Split(New [Char]() {"|"c}) Dim tempString As String For Each tempString In tempArray tempTaskItem = FindTaskBySubjectName(tempString) If Not (tempTaskItem Is Nothing) Then Me.listBox1.AddItem(tempTaskItem.PercentComplete.ToString() & _ "% Complete -- " & tempTaskItem.Subject, System.Type.Missing) End If Next tempString End Sub
void RefreshTaskListBox() { listBox1.Clear(); Outlook.TaskItem tempTaskItem; String[] tempArray = olkTextBox3.Text.Split(new Char[] { '|' }); foreach (string tempString in tempArray) { tempTaskItem = FindTaskBySubjectName(tempString); if (tempTaskItem != null) { this.listBox1.AddItem(tempTaskItem.PercentComplete.ToString() + "% Complete -- " + tempTaskItem.Subject, System.Type.Missing); } } }
TaskFormRegion_FormRegionShowing olay işleyicisini aşağıdaki kod ile değiştirin.Bu kod aşağıdaki görevleri gerçekleştirir:
Form bölgesi üzerindeki birleşik giriş kutusunu, form bölgesi göründüğünde görev konularıyla doldurur.
Form bölgesi göründüğünde RefreshTaskListBox yardımcı yöntemini çağırır.Bu, öğe önceden açılmışsa liste kutusuna eklenen herhangi bir bağımlı görevi görüntüler.
Private Sub TaskFormRegion_FormRegionShowing(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing populateComboBox() RefreshTaskListBox() End Sub
private void TaskFormRegion_FormRegionShowing (object sender, EventArgs e) { populateComboBox(); RefreshTaskListBox(); this.addDependentTask.Click += new Microsoft.Office.Interop.Outlook. OlkCommandButtonEvents_ClickEventHandler(AddDependentTask_Click); }
Outlook Form Bölgelerinı Sınama
Form bölgesini sınamak için, form bölgesindeki önkoşul görevleri listesine görevler ekleyin.Önkoşul görevinin tamamlanma durumunu güncelleyin ve önkoşul görev listesindeki görevin güncellenmiş tamamlanma durumunu görüntüleyin.
Form bölgesini sınamak için
F5 tuşuna basarak projeyi çalıştırın.
Outlook başlatılır.
Outlook'ta, üzerinde Ev sekmesinde Yeni öğeler[NULL]'ı görev.
Bağımlı görevi görev formuna yazın konu alan.
Şerit'in Görev grubunun Eylemler sekmesinde Kaydet & Kapat'ı tıklatın.
Outlook'ta, üzerinde Ev sekmesinde Yeni öğeler,'ı tıklatın Öğeleri daha[NULL]'ı Form Seç.
İçinde Form Seç iletişim kutusunu tıklatın TaskFormRegion olarak[NULL]'ı açık.
TaskFormRegion olarak form bölgesi görünür.Bu formu, tüm görev formu değiştirir., Bağımlı görevler listesine eklemek için br görev seçin birleşik giriş kutusu diğer görevler klasöründeki görevleri ile doldurulur.
Görev formu üzerinde bulunan konu alan, birincil görevi yazın.
İçinde Bağımlı görevler listesine eklemek için br görev seçin kutu, seçme Bağımlı görev[NULL]'ı Bağımlı görev Ekle.
%0 Tamamlandı--bağımlı görev görünür Bu görev aşağıdaki görevlere bağlıdır liste kutusu.Bu başarıyla işlendi gösterir Microsoft.Office.Interop.Outlook.OlkCommandButton.Click düğmesinin olayı.
Kaydet ve Kapat Birincil görevi öğesi.
Bağımlı görev öğesini Outlook'ta açın.
Bağımlı görev formu üzerinde değiştirme Tamamlanan % % 50 alan.
Üzerinde görev bağımlı görev Şerit sekmesinde, Eylemler tıklatın, grup Kaydet & Kapat.
Yeniden Birincil görevi Outlook öğesi.
% 50 Tamamlandı--bağımlı görev artık Bu görev aşağıdaki görevlere bağlıdır liste kutusu.
Sonraki Adımlar
Aşağıdaki konulardan Outlook uygulamasının UI'ını nasıl özelleştireceğiniz hakkında daha fazla bilgi alabilirsiniz:
Yönetilen denetimleri görsel tasarımcıya sürükleyerek form bölgesinin görünümününün nasıl tasarlandığı hakkında bilgi edinmek için, bkz. İzlenecek Yol: Outlook Form Bölgesi Tasarlama.
Outlook öğesinin Şerit'inin nasıl özelleştirileceği hakkında bilgi edinmek için, bkz. Outlook İçin Şerit Özelleştirme.
Özel görev bölmelerinin Outlook'a nasıl ekleneceği hakkında daha fazla bilgi için, bkz. Özel Görev Bölmeleri.
Ayrıca bkz.
Görevler
İzlenecek Yol: Outlook Form Bölgesi Tasarlama
Nasıl Yapılır: Outlook Eklenti Projesine Form Bölgesi Ekleme
Nasıl Yapılır: Outlook'un Form Bölgesini Görüntülemesini Engelleme
Kavramlar
Form Bölgesine Çalışma Zamanında Erişme
Outlook Form Bölgeleri Oluşturma Yönergeleri
Form Bölgesini Outlook İleti Sınıfıyla İlişkilendirme
Outlook Form Bölgelerindeki Özel Eylemler