İzlenecek yol: Outlook'de tasarlanan bir form bölgesini içeri aktarma

Şunlar için geçerlidir:yesnoVisual Studio Mac için Visual Studio noVisual Studio Code

Bu kılavuzda, Microsoft Office Outlook'da form bölgesi tasarlama ve ardından Yeni Form Bölgesi sihirbazını kullanarak form bölgesini Outlook bir VSTO Eklentisi projesine aktarma işlemleri gösterilmektedir. form bölgesini Outlook'de tasarlamak, Outlook verilere bağlanan form bölgesine yerel Outlook denetimleri eklemenize olanak sağlar. Form bölgesini içeri aktardıktan sonra, her denetimin olaylarını işleyebilirsiniz.

Ş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 uygulama ve proje türüne göre kullanılabilen özellikler.

Bu izlenecek yol aşağıdaki görevleri gösterir:

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

  • Form bölgesini bir Outlook VSTO Eklentisi 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. Sahip olduğunuz Visual Studio sürümü ve kullandığınız ayarlar bu öğeleri belirler. Daha fazla bilgi için bkz. IDE'yi kişiselleştirme.

Önkoşullar

Bu izlenecek yolu tamamlamak için aşağıdaki bileşenlere ihtiyacınız vardır:

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 IDE'yi kişiselleştirme.

Outlook'da form bölgesi tasarımcısını kullanarak form bölgesi tasarlama

Bu adımda, Outlook bir form bölgesi tasarlaacaksınız. Daha sonra form bölgesini kolay bulunan bir konuma kaydederek Visual Studio içeri aktaracaksınız.

Bu örnek form bölgesi normal Görev formunun yerini tamamen alır. Ana görevin gerçekleştirilebilmesi için tamamlanması gereken tüm görevlerin ilerleme durumunu izlemek için bir yol sağlar (önkoşul görevleri). Form bölgesi önkoşul görevlerin listesini görüntüler ve listedeki her görevin tamamlanma durumunu gösterir. Kullanıcılar listeye görev ekleyebilir ve bunları kaldırabilir. Ayrıca her görevin tamamlanma durumunu yenileyebilirler.

Outlook'de form bölgesi tasarımcısını kullanarak form bölgesi tasarlamak için

  1. Microsoft Office Outlook başlayın.

  2. Outlook,Geliştirici sekmesinde Form Tasarla'ya tıklayın. Daha fazla bilgi için bkz . Nasıl yapılır: Şeritteki geliştirici sekmesini gösterme.

  3. Tasarım Formu kutusunda Görev'e ve ardından Aç'a tıklayın.

  4. Outlook'da, Geliştirici sekmesinin Tasarım grubunda Yeni Form Bölgesi'ne tıklayın.

    Yeni bir form bölgesi açılır. Alan Seçici görünmüyorsa, Araçlar grubunda Alan Seçici'ye tıklayın.

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

  6. Araçlar grubunda Denetim Araç Kutusu'na tıklayarak Araç Kutusu'nu açın.

  7. Araç Kutusu'ndan bir Etiketi form bölgesine sürükleyin. Etiketi Konu ve Tamamlanma Yüzdesi alanlarının altına yerleştirin.

  8. Etikete sağ tıklayın ve ardından Gelişmiş Özellikler'e tıklayın.

  9. Özellikler penceresinde Caption özelliğini Bu görev aşağıdaki görevlere bağlıdır olarak ayarlayın, Width özelliğini 200 olarak ayarlayın ve Uygula'ya tıklayın.

  10. Bir ListBox denetimini Araç Kutusu'ndan form bölgesine sürükleyin. Bu görevin altındaki liste kutusunu konumlandırmak aşağıdaki görevler etiketine bağlıdır .

  11. Yeni eklediğiniz liste kutusunu seçin.

  12. Özellikler penceresinde Genişlik'i300 olarak ayarlayın ve Uygula'ya tıklayın.

  13. Araç Kutusu'ndan bir Etiketi form bölgesine sürükleyin. Etiketi liste kutusunun altına yerleştirin.

  14. Yeni eklediğiniz etiketi seçin.

  15. Özellikler penceresinde Caption özelliğini Bağımlı görevler listesine eklenecek görevi seçin olarak ayarlayın, Width özelliğini 200 olarak ayarlayın ve uygula'ya tıklayın.

  16. Bir ComboBox denetimini Araç Kutusu'ndan form bölgesine sürükleyin. Birleşik giriş kutusunu , Bağımlı görevler listesine eklenecek görevi seçin etiketinin altına yerleştirin.

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

  18. Özellikler penceresinde Width özelliğini 300 olarak ayarlayın ve Uygula'ya tıklayın.

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

  20. Yeni eklediğiniz komut düğmesini seçin.

  21. Özellikler penceresinde Ad'ıAddDependentTask olarak ayarlayın, Açıklamalı Alt Yazı'yıBağımlı Görev Ekle olarak ayarlayın, Genişlik'i100 olarak ayarlayın ve Uygula'ya tıklayın.

  22. Alan Seçici'deYeni'ye tıklayın.

  23. Yeni Alan iletişim kutusunda, Ad alanına hiddenField yazın ve tamam'a tıklayın.

  24. HiddenField alanını Alan Seçici'den form bölgesine sürükleyin.

  25. Özellikler penceresinde Visible değerini 0 - False olarak ayarlayın ve Uygula'ya tıklayın.

  26. Outlook'da, Geliştirici sekmesinin Tasarım grubunda Kaydet düğmesine ve ardından Form Bölgesini Farklı Kaydet'e tıklayın.

    Form bölgesini TaskFormRegion olarak adlandırın ve bilgisayarınızdaki yerel bir dizine kaydedin.

    Outlook form bölgesini Outlook Form Depolama (.ofs) dosyası olarak kaydeder. Form bölgesi TaskFormRegion.ofs adıyla kaydedilir.

  27. Outlook çıkın.

Yeni Outlook Eklentisi projesi oluşturma

Bu adımda bir Outlook VSTO Eklentisi projesi oluşturacaksınız. Bu kılavuzun ilerleyen bölümlerinde form bölgesini projeye aktaracaksınız.

YENI bir Outlook VSTO Eklentisi projesi oluşturmak için

  1. Visual Studio'da TaskAddIn adlı bir Outlook VSTO Eklentisi projesi oluşturun.

  2. Yeni Project iletişim kutusunda Çözüm için dizin oluştur'u seç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 içeri aktarma

yeni Outlook Form Bölgesi sihirbazını kullanarak, Outlook içinde tasarladığınız form bölgesini Outlook VSTO Eklentisi projesine aktarabilirsiniz.

Form bölgesini Outlook VSTO Eklentisi projesine aktarmak için

  1. Çözüm Gezgini'daTaskAddIn projesine sağ tıklayın, Ekle'nin üzerine gelin ve Yeni Öğe'ye tıklayın.

  2. Şablonlar bölmesinde Form Bölgesi Outlook seçin, dosyayı TaskFormRegion olarak adlandırın ve Ekle'ye tıklayın.

    NewOutlook Form Bölgesi sihirbazı başlatılır.

  3. Form bölgesini nasıl oluşturmak istediğinizi seçin sayfasında, Outlook Form Depolama (.ofs) Dosyasını İçeri Aktar'a tıklayın ve ardından Gözat'a tıklayın.

  4. Varolan Outlook Form Bölgesi Dosya Konumu iletişim kutusunda TaskFormRegion.ofs konumunu bulun, TaskFormRegion.ofs öğesini seçin, Aç'a tıklayın ve sonra İleri'ye tıklayın.

  5. Oluşturmak istediğiniz form bölgesi türünü seçin sayfasında Tümünü değiştir'e ve ardından İleri'ye tıklayın.

    Tümünü değiştir form bölgesi, Outlook formunun tamamının yerini alır. Form bölgesi türleri hakkında daha fazla bilgi için bkz. Outlook form bölgeleri oluşturma.

  6. Açıklayıcı metin sağlayın ve görüntüleme tercihlerinizi seçin sayfasında İleri'ye tıklayın.

  7. Bu form bölgesini görüntüleyecek ileti sınıflarını belirleyin sayfasında, Bu form bölgesini hangi özel ileti sınıfları görüntüleyecek? alanına IPM yazın. Task.TaskFormRegion ve ardından Son'a tıklayın.

    Projenize bir TaskFormRegion.cs veya TaskFormRegion.vb dosyası eklenir.

Form bölgesindeki denetimlerin olaylarını işleme

Artık projede form bölgeniz olduğuna göre, Outlook'da form bölgesine eklediğiniz düğmenin olayını işleyen Microsoft.Office.Interop.Outlook.OlkCommandButton.Click kod ekleyebilirsiniz.

Ayrıca, form bölgesi görüntülendiğinde form bölgesindeki denetimleri güncelleştiren olaya kod FormRegionShowing ekleyin.

Form bölgesindeki denetimlerin olaylarını işlemek için

  1. Çözüm Gezgini'daTaskFormRegion.cs veya TaskFormRegion.vb'ye sağ tıklayın ve ardından Kodu Görüntüle'ye tıklayın.

    TaskFormRegion.cs veya TaskFormRegion.vb , Kod Düzenleyicisi'nde açılır.

  2. Aşağıdaki kodu TaskFormRegion sınıfına ekleyin. Bu kod, form bölgesindeki birleşik giriş kutusunu Outlook Görevler klasöründeki her görevin konu satırıyla doldurur.

    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:

    • Microsoft.Office.Interop.Outlook.TaskItem Yardımcı yöntemini çağırarak FindTaskBySubjectName ve istenen görevin konusunu geçirerek Görevler klasöründe öğesini bulur. Sonraki adımda yardımcı yöntemini ekleyebilirsiniz FindTaskBySubjectName .

    • Microsoft.Office.Interop.Outlook.TaskItem.Subject ve Microsoft.Office.Interop.Outlook.TaskItem.PercentComplete değerlerini bağımlı görev liste kutusuna ekler.

    • Görevin konusunu form bölgesindeki gizli alana ekler. Gizli alan bu değerleri Outlook öğesinin bir parçası olarak depolar.

          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ımda açıklanan yardımcı yöntemi FindTaskBySubjectName sağlar.

    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.

    • Her bağımlı görevin konusunu almak için gizli metin alanını ayrıştırıyor. Ardından yardımcı yöntemini çağırarak FindTaskBySubjectName ve her Microsoft.Office.Interop.Outlook.TaskItem görevin konusunu geçirerek Görevler klasöründeki her birini bulur.

    • Microsoft.Office.Interop.Outlook.TaskItem.Subject ve Microsoft.Office.Interop.Outlook.TaskItem.PercentComplete değerlerini bağımlı görev liste kutusuna ekler.

      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. Olay işleyicisini TaskFormRegion_FormRegionShowing aşağıdaki kodla değiştirin. Bu kod aşağıdaki görevleri gerçekleştirir:

    • Form bölgesi görüntülendiğinde form bölgesindeki birleşik giriş kutusunu görev konularıyla doldurur.

    • RefreshTaskListBox Form bölgesi göründüğünde yardımcı yöntemini çağırır. Bu, öğe daha önce açıldığında liste kutusuna eklenmiş olan bağımlı görevleri görüntüler.

      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ölgesini test edin

Form bölgesini test etmek için, form bölgesindeki önkoşul görevleri listesine görevler ekleyin. Önkoşul görevinin tamamlanma durumunu güncelleştirin ve ardından önkoşul görev listesinde görevin güncelleştirilmiş tamamlanma durumunu görüntüleyin.

Form bölgesini test etmek için

  1. Projeyi çalıştırmak için F5 tuşuna basın.

    Outlook başlar.

  2. Outlook Giriş sekmesindeYeni Öğeler'e ve ardından Görev'e tıklayın.

  3. Görev formunda, Konu alanına Bağımlı Görev yazın.

  4. Şeridin Görev sekmesinin Eylemler grubunda Kapat'ı Kaydet'e &tıklayın.

  5. Outlook Giriş sekmesindeYeni Öğeler'e, Diğer Öğeler'e ve ardından Form Seç'e tıklayın.

  6. Form Seç iletişim kutusunda GörevFormBölgesi'ne tıklayın ve sonra da Aç'a tıklayın.

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

  7. Görev formunda, Konu alanına Birincil Görev yazın.

  8. Bağımlı görevler listesine eklenecek görevi seçin birleşik giriş kutusunda, Bağımlı Görev'i seçin ve ardından Bağımlı Görev Ekle'ye tıklayın.

    %0 Tamamlandı -- Bağımlı Görev, Bu görev aşağıdaki görevler liste kutusunda görünür. Bu, düğme olayını başarıyla işlediğinizi Microsoft.Office.Interop.Outlook.OlkCommandButton.Click gösterir.

  9. Birincil Görev öğesini kaydedin ve kapatın.

  10. bağımlı görev öğesini Outlook yeniden açın.

  11. Bağımlı Görev formunda Tamamlanma Yüzdesi alanını %50 olarak değiştirin.

  12. Bağımlı Görev Şeridi'nin Görev sekmesinin Eylemler grubunda Kapat'ı Kaydet'e &tıklayın.

  13. birincil görev öğesini Outlook yeniden açın.

    %50 Tamamlandı -- Bağımlı Görev artık Bu görev aşağıdaki görevler liste kutusunda görünür.

Sonraki adımlar

Aşağıdaki konulardan bir Outlook uygulamasının kullanıcı arabirimini özelleştirme hakkında daha fazla bilgi edinebilirsiniz:

Ayrıca bkz.