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
Wählen Sie in dem Dokument, das im Visual Studio-Designer gehostet wird, das zu schützende Inhaltssteuerelement aus.
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.
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.
Hinweis |
---|
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
Wählen Sie im Dokument, das im Visual Studio-Designer gehostet wird, den zu schützenden Bereich aus.
Klicken Sie im Menüband auf die Registerkarte Entwickler.
Hinweis 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.
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
Übersicht über Hostelemente und Hoststeuerelemente
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen
Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit