Ochrana částí dokumentů pomocí ovládacích prvků obsahu

Když chráníte část dokumentu, zabráníte uživatelům v tom, aby změnili nebo odstranili obsah v této části dokumentu. Části dokumentu systém Microsoft Office Wordu můžete chránit několika způsoby pomocí ovládacích prvků obsahu:

  • Ovládací prvek obsahu můžete chránit.

  • Můžete chránit část dokumentu, která není v ovládacím prvku obsahu.

    Platí pro: Informace v tomto tématu platí pro projekty na úrovni dokumentu a projekty doplňků VSTO pro Word. Další informace naleznete v tématu Funkce dostupné aplikace Office lication a typu projektu.

Ochrana ovládacího prvku obsahu

Uživatelům můžete zabránit v úpravě nebo odstranění ovládacího prvku nastavením vlastností ovládacího prvku v projektu na úrovni dokumentu v době návrhu nebo v době běhu.

Ovládací prvky obsahu, které přidáte do dokumentu za běhu, můžete také chránit pomocí projektu doplňku VSTO. Další informace naleznete v tématu Postupy: Přidání ovládacích prvků obsahu do wordových dokumentů.

Ochrana ovládacího prvku obsahu v době návrhu

  1. V dokumentu, který je hostovaný v návrháři sady Visual Studio, vyberte ovládací prvek obsahu, který chcete chránit.

  2. V okně Vlastnosti nastavte jednu nebo obě z následujících vlastností:

    • Chcete-li uživatelům zabránit v úpravách ovládacího prvku, nastavte LockContents na Hodnotu True.

    • Chcete-li zabránit uživatelům v odstranění ovládacího prvku, nastavte LockContentControl na Hodnotu True.

  3. Klikněte na OK.

Ochrana ovládacího prvku obsahu za běhu

  1. LockContents Nastavte vlastnost ovládacího prvku obsahu na true, aby uživatelé nemohli ovládací prvek upravovat, a nastavte LockContentControl vlastnost na true, aby uživatelé nemohli ovládací prvek odstranit.

    Následující příklad kódu ukazuje použití LockContents a LockContentControl vlastnosti dvou různých RichTextContentControl objektů v projektu na úrovni dokumentu. Pokud chcete tento kód spustit, přidejte kód do ThisDocument třídy v projektu a volejte metodu AddProtectedContentControls z obslužné rutiny ThisDocument_Startup události.

    private Microsoft.Office.Tools.Word.RichTextContentControl deletableControl;
    private Microsoft.Office.Tools.Word.RichTextContentControl editableControl;
    
    private void AddProtectedContentControls()
    {
        this.Paragraphs[1].Range.InsertParagraphBefore();
        Word.Range range1 = this.Paragraphs[1].Range;
    
        deletableControl = this.Controls.AddRichTextContentControl(range1,
            "deletableControl");
        deletableControl.PlaceholderText = "You can delete this control, " +
            "but you cannot edit it";
        deletableControl.LockContents = true;
    
        range1.InsertParagraphAfter();
        Word.Range range2 = this.Paragraphs[2].Range;
    
        editableControl = this.Controls.AddRichTextContentControl(range2,
            "editableControl");
        editableControl.PlaceholderText = "You can edit this control, " +
            "but you cannot delete it";
        editableControl.LockContentControl = true;
    }
    

    Následující příklad kódu ukazuje použití LockContents a LockContentControl vlastnosti dvou různých RichTextContentControl objektů v projektu doplňku VSTO. Pokud chcete tento kód spustit, přidejte kód do ThisAddIn třídy v projektu a volejte metodu AddProtectedContentControls z obslužné rutiny ThisAddIn_Startup události.

    private Microsoft.Office.Tools.Word.RichTextContentControl deletableControl;
    private Microsoft.Office.Tools.Word.RichTextContentControl editableControl;
    
    private void AddProtectedContentControls()
    {
        Microsoft.Office.Tools.Word.Document vstoDocument = 
            Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
        vstoDocument.Paragraphs[1].Range.InsertParagraphBefore();
        Word.Range range1 = vstoDocument.Paragraphs[1].Range;
    
        deletableControl = vstoDocument.Controls.AddRichTextContentControl(range1,
            "deletableControl");
        deletableControl.PlaceholderText = "You can delete this control, " +
            "but you cannot edit it";
        deletableControl.LockContents = true;
    
        range1.InsertParagraphAfter();
        Word.Range range2 = vstoDocument.Paragraphs[2].Range;
    
        editableControl = vstoDocument.Controls.AddRichTextContentControl(range2,
            "editableControl");
        editableControl.PlaceholderText = "You can edit this control, " +
            "but you cannot delete it.";
        editableControl.LockContentControl = true;
    }
    

Ochrana části dokumentu, která není v ovládacím prvku obsahu

Uživatelům můžete zabránit v tom, aby změnili oblast dokumentu tak, že ji umístíte do objektu GroupContentControl. To je užitečné v následujících scénářích:

  • Chcete chránit oblast, která neobsahuje ovládací prvky obsahu.

  • Chcete chránit oblast, která již obsahuje ovládací prvky obsahu, ale text nebo jiné položky, které chcete chránit, nejsou v ovládacích prvcích obsahu.

Poznámka:

Pokud vytvoříte ovládací prvky s vloženým GroupContentControl obsahem, nebudou ovládací prvky vloženého obsahu automaticky chráněny. Chcete-li uživatelům zabránit v úpravě vloženého ovládacího prvku obsahu, použijte vlastnost LockContents ovládacího prvku.

Ochrana oblasti dokumentu v době návrhu

  1. V dokumentu, který je hostovaný v návrháři sady Visual Studio, vyberte oblast, kterou chcete chránit.

  2. Na pásu karet klikněte na kartu Vývojář .

    Poznámka:

    Pokud karta Vývojář není viditelná, musíte ji nejdřív zobrazit. Další informace najdete v tématu Postupy: Zobrazení karty Vývojář na pásu karet.

  3. Ve skupině Ovládací prvky klikněte na rozevírací tlačítko Skupina a potom klepněte na tlačítko Seskupovat.

    A GroupContentControl obsahující chráněnou oblast se automaticky vygeneruje ve ThisDocument třídě ve vašem projektu. Ohraničení, které představuje ovládací prvek skupiny, je viditelné v době návrhu, ale v době běhu neexistuje žádné viditelné ohraničení.

Ochrana oblasti dokumentu za běhu

  1. Programově vyberte oblast, kterou chcete chránit, a pak volejte metodu AddGroupContentControl pro GroupContentControlvytvoření .

    Následující příklad kódu pro projekt na úrovni dokumentu přidá text do prvního odstavce v dokumentu, vybere první odstavec a vytvoří instanci GroupContentControl. Pokud chcete tento kód spustit, přidejte kód do ThisDocument třídy v projektu a volejte metodu ProtectFirstParagraph z obslužné rutiny ThisDocument_Startup události.

    private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    
    private void ProtectFirstParagraph()
    {
        this.Paragraphs[1].Range.InsertParagraphBefore();
        Word.Range range1 = this.Paragraphs[1].Range;
    
        range1.Text = "You cannot edit or change the formatting of text " +
            "in this sentence, because this sentence is in a GroupContentControl.";
        range1.Select();
        groupControl1 = this.Controls.AddGroupContentControl("groupControl1");
    }
    

    Následující příklad kódu pro doplněk VSTO přidá text do prvního odstavce v aktivním dokumentu, vybere první odstavec a vytvoří instanci GroupContentControl. Pokud chcete tento kód spustit, přidejte kód do ThisAddIn třídy v projektu a volejte metodu ProtectFirstParagraph z obslužné rutiny ThisAddIn_Startup události.

           private Microsoft.Office.Tools.Word.GroupContentControl groupControl1;
    
           private void ProtectFirstParagraph()
           {
               Microsoft.Office.Tools.Word.Document vstoDocument =
                   Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
               vstoDocument.Paragraphs[1].Range.InsertParagraphBefore();
    
               Word.Range range1 = vstoDocument.Paragraphs[1].Range;
               range1.Text = "You cannot edit or change the formatting of text " +
                   "in this sentence, because this sentence is in a GroupContentControl.";
               range1.Select();
    
               groupControl1 = vstoDocument.Controls.AddGroupContentControl("groupControl1");
           }