Porady: ochrona części dokumentów za pomocą formantów zawartości

Ochrona części dokumentu, można uniemożliwić użytkownikom zmienianie lub usuwanie zawartości w tej części dokumentu.Istnieje kilka sposobów, w części dokumentu programu Microsoft Office Word można chronić za pomocą formantów zawartości:

  • Można chronić formantu zawartości.

  • Można chronić część dokumentu, który nie jest w formancie zawartości.

Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu i aplikacji obsługiwanych w programach Word 2013 i Word 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacjach pakietu Office i typ projektu.

Ochrona formant zawartości

Można uniemożliwić użytkownikom edytowanie lub usuwanie formantu zawartości przez ustawienie właściwości formantu w projekcie na poziomie dokumentu, w czasie projektowania lub w czasie wykonywania.

Można również chronić formantów zawartości, które można dodawać do dokumentów w czasie wykonywania za pomocą projektu na poziomie aplikacji.Aby uzyskać więcej informacji, zobacz Porady: dodawanie formantów zawartości do dokumentów programu Word.

Aby chronić formant zawartości w czasie projektowania

  1. W dokumencie, który znajduje się w Visual Studio designer, zaznacz formant zawartości, który chcesz chronić.

  2. W Właściwości okno, ustawić jedną lub obie następujące właściwości:

    • Aby uniemożliwić użytkownikom edycję formantu, należy ustawić LockContents do True.

    • Aby uniemożliwić użytkownikom usuwanie formantu, należy ustawić LockContentControl do True.

  3. Kliknij przycisk OK.

Aby chronić formant zawartości w czasie wykonywania

  • Zestaw LockContents właściwości formantu zawartości do true Aby uniemożliwić użytkownikom edytowanie formantu i ustawić LockContentControl właściwość, aby true Aby uniemożliwić użytkownikom usuwanie formantu.

    Poniższy przykład kodu demonstruje użycie LockContents i LockContentControl właściwości dwóch różnych RichTextContentControl obiekty w projekcie na poziomie dokumentu.Aby uruchomić ten kod, należy dodać kod do ThisDocument klasy w projekcie, a wywołanie AddProtectedContentControls metoda z ThisDocument_Startup programu obsługi zdarzeń.

    Dim deletableControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Dim editableControl As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddProtectedContentControls()
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim range1 As Word.Range = Me.Paragraphs(1).Range
    
        deletableControl = Me.Controls.AddRichTextContentControl(range1, _
            "deletableControl")
        deletableControl.PlaceholderText = "You can delete this control, " & _
            "but you cannot edit it"
        deletableControl.LockContents = True
    
        range1.InsertParagraphAfter()
        Dim range2 As Word.Range = Me.Paragraphs(2).Range
    
        editableControl = Me.Controls.AddRichTextContentControl(range2, _
            "editableControl")
        editableControl.PlaceholderText = "You can edit this control, " & _
            "but you cannot delete it"
        editableControl.LockContentControl = True 
    End Sub
    
    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;
    }
    

    Poniższy przykład kodu demonstruje użycie LockContents i LockContentControl właściwości dwóch różnych RichTextContentControl obiekty w projekcie na poziomie aplikacji.Aby uruchomić ten kod, należy dodać kod do ThisAddIn klasy w projekcie, a wywołanie AddProtectedContentControls metoda z ThisAddIn_Startup programu obsługi zdarzeń.

    Dim deletableControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Dim editableControl As Microsoft.Office.Tools.Word.RichTextContentControl
    
    Private Sub AddProtectedContentControls()
    
        Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _
            Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
        vstoDocument.Paragraphs(1).Range.InsertParagraphBefore()
        Dim range1 As Word.Range = 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()
        Dim range2 As Word.Range = 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 
    End Sub
    
    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;
    }
    

Ochrona części dokumentu, który nie jest w formancie zawartości

Można uniemożliwić użytkownikom zmianę obszar dokumentu przez ich obszar GroupContentControl.Jest to przydatne w następujących scenariuszach:

  • Chcesz chronić obszar, który nie zawiera formanty zawartości.

  • Aby chronić obszar, który już zawiera formanty zawartości, ale tekst lub inne elementy, które chcesz chronić nie są w formantach zawartości.

[!UWAGA]

Jeśli tworzysz GroupContentControl zawierających wbudowane formanty zawartości, wbudowane formanty zawartości nie są chronione automatycznie.Aby uniemożliwić użytkownikom edytowanie osadzony formant zawartości, należy użyć LockContents właściwości formantu.

Aby chronić obszar dokumentu w czasie projektowania

  1. W dokumencie, który znajduje się w Visual Studio designer, zaznacz obszar, który chcesz chronić.

  2. Kliknij na Wstążce, autora kartę.

    [!UWAGA]

    Jeśli autora karta nie jest widoczna, najpierw należy wyświetlić.Aby uzyskać więcej informacji, zobacz Porady: pokazywanie karty dewelopera na wstążce.

  3. W kontroli grupy, kliknij przycisk grupy przycisk menu rozwijanego, a następnie kliknij przycisk grupy.

    A GroupContentControl zawiera chronione regionu jest generowany automatycznie w ThisDocument klasy do projektu.Obramowanie, reprezentujący kontroli grupy jest widoczny w czasie projektowania, ale nie będzie widoczne obramowania w czasie wykonywania.

Aby chronić obszar dokumentu w czasie wykonywania

  • Programowo zaznaczyć obszar, który chcesz chronić, a następnie wywołać AddGroupContentControl metoda tworzenia GroupContentControl.

    Poniższy przykład kodu do projektu na poziomie dokumentu dodaje tekst do pierwszego akapitu w dokumencie, zaznacza pierwszy akapit, a następnie tworzy GroupContentControl.Aby uruchomić ten kod, należy dodać kod do ThisDocument klasy w projekcie, a wywołanie ProtectFirstParagraph metoda z ThisDocument_Startup programu obsługi zdarzeń.

    Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl
    
    Private Sub ProtectFirstParagraph()
        Me.Paragraphs(1).Range.InsertParagraphBefore()
        Dim range1 As Word.Range = Me.Paragraphs(1).Range
        range1.Text = "You cannot edit or change the formatting of text " & _
                "in this paragraph, because this paragraph is in a GroupContentControl."
        range1.Select()
    
        groupControl1 = Me.Controls.AddGroupContentControl("groupControl1")
    End Sub
    
    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");
    }
    

    Poniższy przykład kodu do projektu na poziomie aplikacji dodaje się tekst w akapicie pierwszym w aktywnym dokumencie zaznacza pierwszy akapit, a następnie tworzy GroupContentControl.Aby uruchomić ten kod, należy dodać kod do ThisAddIn klasy w projekcie, a wywołanie ProtectFirstParagraph metoda z ThisAddIn_Startup programu obsługi zdarzeń.

    Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl
    
    Private Sub ProtectFirstParagraph()
    
        Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _
            Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    
        VstoDocument.Paragraphs(1).Range.InsertParagraphBefore()
    
        Dim range1 As Word.Range = VstoDocument.Paragraphs(1).Range
        range1.Text = "You cannot edit or change the formatting of text " & _
                "in this paragraph, because this paragraph is in a GroupContentControl."
        range1.Select()
    
        groupControl1 = VstoDocument.Controls.AddGroupContentControl("groupControl1")
    End Sub
    
    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");
    }
    

Zobacz też

Zadania

Porady: dodawanie formantów zawartości do dokumentów programu Word

Koncepcje

Automatyzowanie programu Word za pomocą obiektów rozszerzonych

Formanty zawartości

Przegląd obiektów hosta i formantów hosta

Ograniczenia programowe elementów hosta i formantów hosta

Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania