Aracılığıyla paylaş


İzlenecek Yol: Outlook'ta Tasarlanan Form Bölgesini İçe 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 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çe aktardıktan sonra, her denetimin olayını işleyebilirsiniz.

Uygulama alanı: Bu konudaki bilgiler Outlook 2007 ve Outlook 2010 uygulamalarının uygulama düzeyi projelerine yöneliktir. Daha fazla bilgi için bkz. Office Uygulamalarında Kullanılabilir Özellikler ve Proje Türü.

Bu anlatım aşağıdaki görevleri gösterir:

  • Outlook'taki form bölgesi tasarımcısını kullanarak form bölgesi tasarlama.

  • Form bölgesini Outlook eklenti projesine 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. Bu öğeleri bilgisayarınızdaki Visual Studio sürümü ve kullandığınız ayarlar belirler. Daha fazla bilgi için bkz: Visual Studio Ayarlar.

Önkoşullar

Bu yönergeyi tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

-

Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2010 sürümü. Daha fazla bilgi için bkz: [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](bb398242\(v=vs.100\).md).
  • Microsoft Office Outlook 2007 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. Ayarlar ile çalışma.

Mürekkepten videoya İlgili video gösterimi için, bkz. Nasıl Yaparım: Visual Studio 2008 kullanılarak Outlook Form bölgeleri oluşturulsun mu?.

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 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. Aşağıdaki görevlerden birini gerçekleştirerek forms tasarımcısını açın:

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

  4. Aşağıdaki görevlerden birini gerçekleştirerek form bölgesini oluşturun:

    • Outlook 2010'da, Geliştirici sekmesi üzerindeki Tasarla grubunda, Yeni Form Bölgesi'ni tıklatın.

    • Outlook 2007'de, Geliştirici sekmesi üzerindeki Tasarla grubunda, Form Bölgesi ve ardından Yeni Form Bölgesi'ni tıklatın.

    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. De Özellikler penceresinde, resim yazısı ayarlamak, bu görevin özelliğine bağlıdır aşağıdaki görevler üzerinde genişliği özelliğini tıklatın ve 200 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. De Özellikler penceresinde, genişliği 300 ve ardından 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. De Özellikler penceresinde, resim yazısı bağımlı görevler listesine eklemek için bir görev seçmek için özellik ayarlamak genişliği özelliğini tıklatın ve 200 Uygula.

  16. Toolbox’dan form bölgesi üzerine bir ComboBox denetimi sürükleyin. Açılan kutuyu, Bağımlı görevler listesine eklemek için br görev seçin etiketinin altına konumlandırın.

  17. Eklediğiniz açılan kutuyu seçin.

  18. De Özellikler penceresinde, genişliği özelliğini tıklatın ve 300 Uygula.

  19. Araç Kutusu'ndan form bölgesine CommandButton denetimi sürükleyin. Komut düğmesini açılan kutunun yanına konumlandırın.

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

  21. İçinde özellikleri penceresinde, adı AddDependentTask için ayarlamak resim yazısı bağımlı görevi eklemek için set genişliği için 100 tıklatın ve sonra Uygula.

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

  23. De Yeni alan iletişim kutusunda, tür hiddenField içinde ad alan ve i Tamam.

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

  25. De Özellikler penceresinde, görünür 0 - yanlış ve i Uygula.

  26. Aşağıdaki görevlerden birini gerçekleştirerek form bölgesini kaydedin:

    • Outlook 2010'de, Geliştirici sekmesi üzerindeki Tasarla grubunda, Kaydet düğmesini ve ardından Yeni Form Bölgesini Farklı Kaydet'i tıklatın.

    • Outlook 2007'de, Geliştirici sekmesi üzerindeki Tasarla grubunda, Form Bölgesi'ni ve ardından Yeni Form Bölgesini Farklı Kaydet'i tıklatın.

    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 aktaracaksınız.

Yeni Outlook eklenti projesi oluşturmak için

  1. De Visual Studio, oluşturma, bir Outlook eklentisi projesiyle adı TaskAddIn.

  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 İçe Aktarma

Outlook'da tasarladığınız form bölgesini Outlook eklenti projesine, Yeni Outlook Form Bölgesi sihirbazını kullanarak aktarabilirsiniz.

Outlook eklenti projesine bir form bölgesi 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. De şablonları bölmesinde seçin Outlook formu bölge, ' % s'dosyasını 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ı İçe Aktar'ı tıklatın ve sonra Gözat'ı tıklatın.

  4. De Varolan Outlook formu bölge dosyası konumu TaskFormRegion.ofs, select TaskFormRegion.ofs konuma Gözat iletişim kutusuna tıklatın açıkve i İ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 Yaratma.

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

  7. Üzerinde Bu formu bölge görüntüleyecek ileti sınıfları tanımlamak de, sayfa hangi özel ileti sınıfları bu form bölgeyi görüntüler 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 açılan kutuyu 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 açılan kutuyu, 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, aşağıdaki görevlerden birini gerçekleştirerek bir görev oluşturun:

    • Outlook 2010'da, Giriş sekmesinde, Yeni Öğeler'i seçin ve Görev'i tıklatın.

    • Outlook 2007'de Dosya menüsünde, Yeni'yi işaret edin ve ardından Görev'i tıklatın.

  3. Görev, bağımlı görevin yazın Konu alan.

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

  5. Outlook'ta, aşağıdaki görevlerden birini gerçekleştirerek form bölgesinin bir olgusunu oluşturun:

  6. Outlook 2010 de üzerinde Ev sekmesinde Yeni öğeler,'ı Daha öğelerive i Form Seç.

  7. Outlook 2007'de, üzerinde Dosya menüsü, Yenive i Form Seç.

  8. De Form Seç iletişim kutusunda'ı TaskFormRegionve i açık.

    TaskFormRegion form bölge görüntülenir. Bu formu, tüm görev formu yerini alır. Bağımlı görevler listesine eklemek için bir görev seçin Görevler klasöründeki diğer görevlerle birleşik giriş kutusu doldurulur.

  9. Görev Formu üzerinde bulunan Konu alanında, birincil görevi yazın.

  10. De bağımlı görevler listesine eklemek için bir görev seçin birleşik giriş kutusunda seçin Bağımlı görevive i Bağımlı görev Ekle.

    %0 Complete--bağımlı görevi yer Bu görevi aşağıdaki görevleri bağlıdır liste kutusu. Bu başarıyla işlenen gösterir Microsoft.Office.Interop.Outlook.OlkCommandButton.Click olayı için düğmesine basın.

  11. Kaydet ve Kapat Birincil görevi madde.

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

  13. Bağımlı görevi formunda değiştirmek Tamamlanan % % 50 alan.

  14. Üzerinde görev bağımlı görev şerit sekmesi, eylemleri Grup i Kaydet & Kapat.

  15. Yeniden Birincil görevi Outlook öğesi.

    %50 Complete--bağımlı görevi artık Bu görevi aşağıdaki görevleri 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ölgesi Görüntülemesini Engelleme

Nasıl Yapılır: Form Bölgesini Görüntüleyen Outlook Öğesine Erişim

Kavramlar

Form Bölgesine Çalışma Zamanında Erişme

Outlook Form Bölgeleri Yaratma Yönergeleri

Outlook İleti Sınıfı ile Bir Form Bölgesini İlişkilendirme

Outlook From Bölgelerinde Özel Eylemler

Diğer Kaynaklar

Outlook Form Bölgeleri Yaratma