İ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:

[!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.

video bağlantısı İ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

  1. Microsoft Office Outlook'u başlatın.

  2. 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.

  3. Form Tasarla kutusunda, Görev'i tıklatın ve sonradan 'ı tıklatın.

  4. 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.

  5. Konu alanını ve Alan Seçici'den % Tamamlandı alanını form bölgesine sürükleyin.

  6. Araçlar grubunda, Denetim Araç Kutusu'nu, Araç Kutusu'nu açmak için tıklatın.

  7. Araç Kutusu'ndan bir Etiket'i form bölgesine sürükleyin.Konu'nun altındaki etiketi ve % Tamamlandı alanlarını konumlandırın.

  8. Etiketi sağ tıklatın ve Gelişmiş Özellikler’i tıklatın.

  9. İç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.

  10. 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.

  11. Eklediğiniz liste kutusunu seçin.

  12. İçinde özelliklerini penceresinde, genişliği için 300 tıklatın ve sonra Uygula.

  13. Araç Kutusu'ndan bir Etiket'i form bölgesine sürükleyin.Liste kutusunun altına etiketi konumlandırın.

  14. Eklediğiniz etiketi seçin.

  15. İç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.

  16. 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.

  17. Eklediğiniz birleşik giriş kutusunu seçin.

  18. İçinde özellikleri penceresinde, genişliği özelliği, 300 ve sonra Uygula.

  19. Araç Kutusu'ndan form bölgesine CommandButton denetimi sürükleyin.Komut düğmesini birleşik giriş kutusunun yanına konumlandırın.

  20. Eklediğiniz komut düğmesini seçin.

  21. İç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.

  22. Alan Seçici'de Yeni'yi tıklatın.

  23. İçinde Yeni alan iletişim kutusunda, tür hiddenField içinde adı alan ve ardından Tamam.

  24. hiddenField alanını ve Alan Seçici'den % Tamamlandı alanını form bölgesine sürükleyin.

  25. İçinde özelliklerini penceresinde, görünür 0 - False ve ardından Uygula.

  26. 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.

  27. 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

  1. İçinde Visual Studio, TaskAddIn bir Outlook eklenti projesi oluşturun.

  2. Yeni Proje iletişim kutusunda Çözüm için Dizin Oluştur'u şeçin.

  3. 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

  1. Çözüm Gezgini'nde TaskAddIn projesini sağ tıklatın, Ekle'nin üzerine gelin ve Yeni Öğe'yi tıklatın.

  2. İç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.

  3. 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.

  4. İç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.

  5. 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.

  6. Tanımlayıcı metin girin ve görüntüleme tercihlerini seçin sayfasında, İleri'yi tıklatın.

  7. Ü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

  1. Çö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.

  2. 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);
    }
    
  3. 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;
            }
        }
    
  4. 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;
    }
    
  5. 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);
            }
        }
    }
    
  6. 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

  1. F5 tuşuna basarak projeyi çalıştırın.

    Outlook başlatılır.

  2. Outlook'ta, üzerinde Ev sekmesinde Yeni öğeler[NULL]'ı görev.

  3. Bağımlı görevi görev formuna yazın konu alan.

  4. Şerit'in Görev grubunun Eylemler sekmesinde Kaydet & Kapat'ı tıklatın.

  5. Outlook'ta, üzerinde Ev sekmesinde Yeni öğeler,'ı tıklatın Öğeleri daha[NULL]'ı Form Seç.

  6. İç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.

  7. Görev formu üzerinde bulunan konu alan, birincil görevi yazın.

  8. İç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ı.

  9. Kaydet ve Kapat Birincil görevi öğesi.

  10. Bağımlı görev öğesini Outlook'ta açın.

  11. Bağımlı görev formu üzerinde değiştirme Tamamlanan % % 50 alan.

  12. Üzerinde görev bağımlı görev Şerit sekmesinde, Eylemler tıklatın, grup Kaydet & Kapat.

  13. 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:

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

Diğer Kaynaklar

Outlook Form Bölgeleri Oluşturma