Freigeben über


Gewusst wie: Schützen von Teilen von Dokumenten mithilfe von Inhaltssteuerelementen

Wenn Sie einen Teil eines Dokuments schützen, können Benutzer in diesem Teil des Dokuments keine Änderungen am Inhalt vornehmen oder den Inhalt löschen.Es gibt mehrere Methoden, wie Sie Teile eines Microsoft Office Word-Dokuments mithilfe von Inhaltssteuerelementen schützen können.

  • Sie können ein Inhaltssteuerelement schützen.

  • Sie können einen Teil eines Dokuments schützen, der sich nicht in einem Inhaltssteuerelement befindet.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und auf Anwendungsebene für Word 2013 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Schützen eines Inhaltssteuerelements

Sie können verhindern, dass Benutzer ein Inhaltssteuerelement bearbeiten oder löschen, indem Sie zur Entwurfszeit oder zur Laufzeit Eigenschaften des Steuerelements in einem Projekt auf Dokumentebene festlegen.

Sie können auch Inhaltssteuerelemente schützen, die Sie mithilfe eines Projekts auf Anwendungsebene einem Dokument zur Laufzeit hinzufügen.Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten.

So schützen Sie ein Inhaltssteuerelement zur Entwurfszeit

  1. Wählen Sie in dem Dokument, das im Visual Studio-Designer gehostet wird, das zu schützende Inhaltssteuerelement aus.

  2. Legen Sie im Eigenschaftenfenster eine oder beide der folgenden Eigenschaften fest:

    • Legen Sie LockContents auf True fest, um zu verhindern, dass Benutzer das Steuerelement bearbeiten.

    • Legen Sie LockContentControl auf True fest, um zu verhindern, dass Benutzer das Steuerelement löschen.

  3. Klicken Sie auf OK.

So schützen Sie ein Inhaltssteuerelement zur Laufzeit

  • Legen Sie die LockContents-Eigenschaft des Inhaltssteuerelements auf true fest, damit Benutzer das Steuerelement nicht bearbeiten können, und legen Sie die LockContentControl-Eigenschaft auf true fest, damit Benutzer das Steuerelement nicht löschen können.

    Im folgenden Beispiel wird die Verwendung der LockContents-Eigenschaft und der LockContentControl-Eigenschaft von zwei verschiedenen RichTextContentControl-Objekten in einem Projekt auf Dokumentebene veranschaulicht.Zum Ausführen dieses Codes fügen Sie den Code zur ThisDocument-Klasse im Projekt hinzu, und rufen Sie im ThisDocument_Startup-Ereignishandler die AddProtectedContentControls-Methode auf.

    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;
    }
    

    Im folgenden Beispiel wird die Verwendung der LockContents-Eigenschaft und der LockContentControl-Eigenschaft von zwei verschiedenen RichTextContentControl-Objekten in einem Projekt auf Anwendungsebene veranschaulicht.Zum Ausführen dieses Codes fügen Sie den Code zur ThisAddIn-Klasse im Projekt hinzu und rufen im ThisAddIn_Startup-Ereignishandler die AddProtectedContentControls-Methode auf.

    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;
    }
    

Schützen eines Teils eines Dokuments, der sich nicht in einem Inhaltssteuerelement befindet

Sie können einen Bereich eines Dokuments in ein GroupContentControl setzen, um zu verhindern, dass Benutzer diesen Bereich des Dokuments bearbeiten.Dies ist in den folgenden Szenarien nützlich:

  • Sie möchten einen Bereich schützen, der keine Inhaltssteuerelemente enthält.

  • Sie möchten einen Bereich schützen, der bereits Inhaltssteuerelemente enthält, aber der Text oder die anderen Elemente, die Sie schützen möchten, befinden sich nicht in den Inhaltssteuerelementen.

HinweisHinweis

Wenn Sie ein GroupContentControl-Element mit eingebetteten Inhaltssteuerelementen erstellen, sind die eingebetteten Inhaltssteuerelemente nicht automatisch geschützt.Um zu verhindern, dass Benutzer ein eingebettetes Inhaltssteuerelement bearbeiten, verwenden Sie die LockContents-Eigenschaft des Steuerelements.

So schützen Sie einen Bereich eines Dokuments zur Entwurfszeit

  1. Wählen Sie im Dokument, das im Visual Studio-Designer gehostet wird, den zu schützenden Bereich aus.

  2. Klicken Sie im Menüband auf die Registerkarte Entwickler.

    HinweisHinweis

    Wenn die Registerkarte Entwickler nicht sichtbar ist, müssen Sie diese zuerst anzeigen.Weitere Informationen finden Sie unter Gewusst wie: Anzeigen der Registerkarte "Entwickler" auf der Multifunktionsleiste.

  3. Klicken Sie in der Gruppe Steuerelemente auf die Dropdown-Schaltfläche Gruppe und dann auf Gruppe.

    Ein GroupContentControl, das den geschützten Bereich enthält, wird automatisch in der ThisDocument-Klasse im Projekt generiert.Ein Rahmen, der das Gruppen-Steuerelement darstellt, ist zur Entwurfszeit sichtbar, während der Laufzeit ist jedoch kein Rahmen sichtbar.

So schützen Sie einen Bereich eines Dokuments zur Laufzeit

  • Wählen Sie den zu schützenden Bereich programmgesteuert aus, und rufen Sie dann die AddGroupContentControl-Methode auf, um ein GroupContentControl zu erstellen.

    Im folgenden Codebeispiel für ein Projekt auf Dokumentebene wird im ersten Absatz des Dokuments Text hinzugefügt, der erste Absatz ausgewählt und anschließend ein GroupContentControl instanziiert.Zum Ausführen dieses Codes fügen Sie den Code zur ThisDocument-Klasse im Projekt hinzu, und rufen Sie im ThisDocument_Startup-Ereignishandler die ProtectFirstParagraph-Methode auf.

    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");
    }
    

    Im folgenden Codebeispiel für ein Projekt auf Anwendungsebene wird im ersten Absatz des aktiven Dokuments Text hinzugefügt, der erste Absatz ausgewählt und anschließend ein GroupContentControl instanziiert.Zum Ausführen dieses Codes fügen Sie den Code zur ThisAddIn-Klasse im Projekt hinzu, und rufen Sie im ThisAddIn_Startup-Ereignishandler die ProtectFirstParagraph-Methode auf.

    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");
    }
    

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Inhaltssteuerelementen zu Word-Dokumenten

Konzepte

Automatisieren von Word mithilfe von erweiterten Objekten

Inhaltssteuerelemente

Übersicht über Hostelemente und Hoststeuerelemente

Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen

Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit