Aracılığıyla paylaş


İzlenecek yol: Bir belgeye ekleme denetimlerini bir uygulama düzeyinde eklentisi çalışma zamanı

Uygulama düzeyi eklentisi kullanarak herhangi bir açık Microsoft Office Word belgesine denetimler ekleyebilirsiniz.Bu izlenecek yolda, Button veya RichTextContentControl'ü belgeye eklemeyi sağlayan Şerit'in nasıl kullanıldığı gösterilir.

İçin geçerlidir: bu konudaki bilgiler Word 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 örneklerde aşağıdaki görevler gösterilir:

  • Yeni Word eklenti projesi oluşturma.

  • Belgeye denetimler eklemek için kullanıcı arayüzü (UI) sağlama.

  • Belgeye çalışma zamanında denetimler ekleme.

  • Belgeden denetimleri kaldırma.

[!NOT]

Bilgisayarınızda, aşağıdaki yönergelerde yer alan Visual Studio kullanıcı arabirimi öğelerinden bazılarının adı veya konumu farklı gösterilebilir. 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 örneği tamamlamak için aşağıdaki bileşenler gerekmektedir:

-

Microsoft Office geliştirici araçlarını içeren bir Visual Studio 2012 sürümü. Daha fazla bilgi için bkz: [Office Çözümeri Geliştirmek İçin Bilgisayarı Yapılandırma](bb398242\(v=vs.110\).md).
  • Word 2013 veya Word 2010.

Yeni Word Eklenti Projesi Oluşturma

Yeni Word eklenti projesi oluşturmaya başlayın.

Yeni Word eklenti projesi oluşturmak için

  1. WordDynamicControls isminde Word uygulama düzeyi eklentisi oluşturun.Daha fazla bilgi için bkz. Nasıl yapılır: Visual Studio Office projeler oluşturmak.

  2. Başvuru Ekle Microsoft.Office.Tools.Word.v4.0.Utilities.dll derlemesi.Bu izlenecek yol sonrasında Windows Forms denetimini belgeye eklemek için, bu başvuru gereklidir.

Belgeye Denetim Eklemek için Bir UI Sağlama

Word'deki Şerite özel bir sekme ekleyin.Kullanıcılar belgeye denetim eklemek için sekmedeki onay kutularını işaretleyebilir.

Belgeye denetim eklemek amacıyla bir UI sağlamak için

  1. Proje menüsünde, Yeni Öğe Ekle'yi tıklatın.

  2. Yeni Öge Ekle iletişim kutusunda, Şerit (Görsel Tasarımcı)'yı seçin.

  3. Yeni Şerit'in adını MyRibbon olarak değiştirin ve Ekle'ye tıklayın.

    MyRibbon.cs ya da MyRibbon.vb dosyası Şerit Tasarımcısı'nda açılır ve varsayılan bir sekme ve grup görüntüler.

  4. Şerit Tasarımcısı'nda group1 grubuna tıklayın.

  5. İçinde özelliklerini Değiştir penceresinde etiketi özelliği için group1 denetimleri eklemek için.

  6. Araç Kutusu'nun Office Şerit Denetimleri sekmesinden group1'e bir CheckBox denetimi sürükleyin.

  7. Seçmek için CheckBox1'e tıklatın.

  8. Özellikler penceresindeki aşağıdaki özellikleri değiştirin.

    Özellik

    Value

    Ad

    addButtonCheckBox

    Etiket

    Ekle Düğmesi

  9. group1'e ikinci bir onay kutusu denetimi ekleyin ve aşağıdaki özellikleri değiştirin.

    Özellik

    Value

    Ad

    addRichTextCheckBox

    Etiket

    Zengin Metin Denetimi Ekle

  10. Şerit Tasarımcısı'nda Ekle Düğmesi'ne çift tıklayın.

    Click Olay işleyicisi Düğme Ekle onay kutusunun Kod Düzenleyicisi'nde açılır.

  11. Şerit Tasarımcısına dönün ve Zengin Metin Denetimi Ekle'yi çift tıklayın.

    Click Zengin metin denetimi ekle onay kutusunun olay işleyicisi Kod Düzenleyicisi'nde açılır.

Bu anlatımın sonunda, etkin belgede denetimleri eklemek ve kaldırmak için bu olay işleyicilerine kod ekleyeceksiniz.

Etkin Belgede Denetimleri Ekleme ve Kaldırma

Eklenti kodunda, bir denetim eklemeden önce etkin belgeyi, Microsoft.Office.Tools.Word.Documentkonak öğesi'ne değiştirmelisiniz.Office çözümlerinde, yönetilen denetimler sadece denetimler için kapsayıcı olarak davranan konak öğelerine eklenebilir.Uygulama düzeyi eklenti projelerinde, konak öğeleri GetVstoObject yöntemi kullanılarak çalışma zamanında oluşturulabilir.

Etkin belgede Button veya RichTextContentControl eklemek veya kaldırmak için çağrılabilecek ThisAddIn sınıfına yöntemler ekleyin.Bu anlatımdan sonra, Şerit üzerindeki onay kutularının Click olay işleyicilerinden bu yöntemleri çağıracaksınız.

Etkin belgede denetimleri eklemek ve kaldırmak için

  1. Çözüm Gezgini'nde kod dosyasını Kod Düzenleyici'de açmak için ThisAddIn.cs ya daThisAddIn.vb dosyasına çift tıklayın.

  2. Aşağıdaki kodu ThisAddIn sınıfına ekleyin.Bu kod, belgeye eklenecek denetimleri temsil eden Button ve RichTextContentControl nesnelerini bildirir.

    Private button As Microsoft.Office.Tools.Word.Controls.Button = Nothing
    Private richTextControl As RichTextContentControl = Nothing
    
    private Microsoft.Office.Tools.Word.Controls.Button button = null;
    private RichTextContentControl richTextControl = null;
    
  3. Aşağıdaki yöntemi ThisAddIn sınıfına ekleyin.Kullanıcı, Şerit üzerindeki Düğme Ekle onay kutusunu tıklattığında, bu yöntem ekler bir Button onay kutusu seçiliyse geçerli seçime Button onay kutusu işaretli değilse.

    Friend Sub ToggleButtonOnDocument()
        Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
        Dim name As String = "MyButton"
    
        If Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked Then
            Dim selection = Me.Application.Selection
            If selection IsNot Nothing AndAlso selection.Range IsNot Nothing Then
                button = vstoDocument.Controls.AddButton( _
                    selection.Range, 100, 30, name)
            End If
        Else
            vstoDocument.Controls.Remove(name)
        End If
    End Sub
    
    internal void ToggleButtonOnDocument()
    {
        Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
        string name = "MyButton";
    
        if (Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked)
        {
            Word.Selection selection = this.Application.Selection;
            if (selection != null && selection.Range != null)
            {
                button = vstoDocument.Controls.AddButton(
                    selection.Range, 100, 30, name);
            }
        }
        else
        {
            vstoDocument.Controls.Remove(name);
        }
    }
    
  4. Aşağıdaki yöntemi ThisAddIn sınıfına ekleyin.Kullanıcı, Şerit üzerindeki zengin metin denetimi ekle onay kutusunu tıklattığında, bu yöntem ekler bir RichTextContentControl onay kutusu seçiliyse geçerli seçime RichTextContentControl onay kutusu işaretli değilse.

    Friend Sub ToggleRichTextControlOnDocument()
    
        Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
        Dim name As String = "MyRichTextBoxControl"
    
        If Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked Then
            Dim selection = Me.Application.Selection
            If selection IsNot Nothing AndAlso selection.Range IsNot Nothing Then
                richTextControl = vstoDocument.Controls.AddRichTextContentControl( _
                        selection.Range, name)
            End If
        Else
            vstoDocument.Controls.Remove(name)
        End If
    End Sub
    
    internal void ToggleRichTextControlOnDocument()
    {
    
        Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
        string name = "MyRichTextBoxControl";
    
        if (Globals.Ribbons.MyRibbon.addRichTextCheckBox.Checked)
        {
            Word.Selection selection = this.Application.Selection;
            if (selection != null && selection.Range != null)
            {
                richTextControl = vstoDocument.Controls.AddRichTextContentControl(
                    selection.Range, name);
            }
        }
        else
        {
            vstoDocument.Controls.Remove(name);
        }
    }
    

Belge Kaydedildiğinde Düğme Denetimini Kaldırma

Windows Forms denetimleri, belge kaydedildiğinde ve sonra kapatıldığında kalıcı değildir.Fakat, belgedeki her denetim için ActiveX sarmalayıcısı ve bu sarmalayıcının kenarlığı son kullanıcı tarafından, belge yeniden açıldığında görülebilir.Dinamik olarak oluşturulan eklentideki Windows Froms denetimlerini temizlemek için birçok yol vardır.Bu anlatımda, belge kaydedildiğinde programlı olarak Button denetimini kaldırabilrisiniz.

Belge kaydedildiğinde düğme denetimini kaldırmak için

  1. ThisAddIn.cs veya ThisAddIn.vb kod dosyasında aşağıdaki yöntemi ThisAddIn sınıfına ekleyin.Bu yöntem, DocumentBeforeSave olayı için bir olay işleyicisidir.Eğer kaydedilen belge, onunla ilişkilendirilen bir Document konak öğesine sahipse, olay işleyicisi konak öğesini alır ve Button denetimini, eğer mevcutsa, kaldırır.

    Private Sub Application_DocumentBeforeSave(ByVal Doc As Word.Document, _
        ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave
    
        Dim isExtended As Boolean = Globals.Factory.HasVstoObject(Doc)
    
    
        If isExtended Then
            Dim vstoDocument As Document = Globals.Factory.GetVstoObject(Doc)
    
    
            If vstoDocument.Controls.Contains(button) Then
                vstoDocument.Controls.Remove(button)
                Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = False
            End If
        End If
    End Sub
    
    private void Application_DocumentBeforeSave(Word.Document Doc, 
        ref bool SaveAsUI, ref bool Cancel)
    {
        bool isExtended = Globals.Factory.HasVstoObject(Doc);
    
    
        if (isExtended)
        {
    
            Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(Doc);
    
            if (vstoDocument.Controls.Contains(button))
            {
                vstoDocument.Controls.Remove(button);
                Globals.Ribbons.MyRibbon.addButtonCheckBox.Checked = false;
            }
        }
    }
    
  2. C#'ta, ThisAddIn_Startup olay işleyicisine aşağıdaki kodu ekleyin.Bu kod C#'ta Application_DocumentBeforeSave olay işleyicisini DocumentBeforeSave olayı ile bağlamak için gereklidir.

    this.Application.DocumentBeforeSave += 
        new Word.ApplicationEvents4_DocumentBeforeSaveEventHandler(
        Application_DocumentBeforeSave);
    

Kullanıcı Şerit Üzerindeki Onay Kutularına Tıkladığında Denetimleri Ekleme ve Kaldırma

Son olarak, belgedeki denetimleri eklemek ve kaldırmak için Şerit'e eklediğiniz onay kutularının Click olay işleyicilerini değiştirin.

Kullanıcı Şerit üzerindeki onay Kutularına tıkladığında denetimleri eklemek ve kaldırmak için

  • MyRibbon.cs veya MyRibbon.vb kod dosyasında, yaratılan addButtonCheckBox_Click ve addRichTextCheckBox_Click ola işleyicilerini aşağıdaki kodla değiştirin.Bu kod, anlatımda önceden ThisAddIn sınıfına eklediğiniz ToggleButtonOnDocument ve ToggleRichTextControlOnDocument yöntemlerini çağırmak için bu olay işleyicilerini yeniden tanımlar.

    Private Sub addButtonCheckBox_Click(ByVal sender As System.Object, _
        ByVal e As RibbonControlEventArgs) Handles addButtonCheckBox.Click
        Globals.ThisAddIn.ToggleButtonOnDocument()
    End Sub
    
    Private Sub addRichTextCheckBox_Click(ByVal sender As System.Object, _
        ByVal e As RibbonControlEventArgs) Handles addRichTextCheckBox.Click
        Globals.ThisAddIn.ToggleRichTextControlOnDocument()
    End Sub
    
    private void addButtonCheckBox_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisAddIn.ToggleButtonOnDocument();
    }
    
    private void addRichTextCheckBox_Click(object sender, RibbonControlEventArgs e)
    {
        Globals.ThisAddIn.ToggleRichTextControlOnDocument();
    }
    

Çözümün Sınanması

Belgeye denetimleri Şerit üzerindeki özel bir sekmeden seçerek ekleyin.Belgeyi kaydettiğinizde, Button denetimi kaldırılır.

Çözümü test etmek için

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

  2. Etkin belgede, belgeye yeni boş paragraflar eklemek için ENTER'a birçok kez basın.

  3. İlk paragrafı seçin.

  4. Eklentiler sekmesine tıklayın.

  5. Denetimler Ekle grubunda, Düğme Ekle'ye tıklayın.

    İlk paragrafta bir düğme görünür.

  6. Son paragrafı seçin.

  7. Denetimler Ekle grubunda, Zengin Metin Denetimi Ekle'ye tıklayın.

    Zengin metin içerik denetimi son paragrafa eklenir.

  8. Belgeyi kaydedin.

    Düğme belgeden kaldırılır.

Sonraki Adımlar

Uygulama düzeyi eklentilerindeki denetimler hakkında daha fazla bilgiyi bu konulardan öğrenebilirsiniz:

Ayrıca bkz.

Görevler

Nasıl yapılır: Windows Forms denetimleri eklemek için Office belgeleri

Nasıl yapılır: Word belgeleri için içerik denetimleri ekleme

Kavramlar

Belgeye Çalışma Zamanında Denetim Ekleme

Office Belgelerinde Dinamik Denetimleri Kalıcı Kılma

Word Belgelerini ve Excel Çalışma Kitaplarını Çalıştırma Zamanında Uygulama Düzeyi Eklentileri İçinde Genişletme

Diğer Kaynaklar

Word Çözümleri