Gewusst wie: Schützen von Teilen von Dokumenten mithilfe von Inhaltssteuerelementen
Aktualisiert: Juli 2008
Betrifft |
---|
Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office. Projekttyp
Microsoft Office-Version
Weitere Informationen finden Sie unter Verfügbare Features nach Anwendung und Projekttyp. |
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 2007-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.
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.
Ab Visual Studio 2008 Service Pack 1 (SP1) können Sie einem Dokument zur Laufzeit hinzugefügte Inhaltssteuerelemente mit einem Projekt auf Anwendungsebene schützen. Weitere Informationen hierzu 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 in einem Projekt auf Dokumentebene
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; }
So schützen Sie ein Inhaltssteuerelement zur Laufzeit in einem Projekt auf Anwendungsebene
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 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 = _ Me.Application.ActiveDocument.GetVstoObject() 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 = this.Application.ActiveDocument.GetVstoObject(); 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 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 in der Multifunktionsleiste 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 in einem Projekt auf Dokumentebene
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 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"); }
So schützen Sie einen Bereich eines Dokuments zur Laufzeit in einem Projekt auf Anwendungsebene
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 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 = _ Me.Application.ActiveDocument.GetVstoObject() 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 = this.Application.ActiveDocument.GetVstoObject(); 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
Übersicht über Hostelemente und Hoststeuerelemente
Programmgesteuerte Einschränkungen von Hostelementen und Hoststeuerelementen
Hinzufügen von Steuerelementen zu Office-Dokumenten zur Laufzeit
Hilfsmethoden für Hoststeuerelemente
Weitere Ressourcen
Änderungsprotokoll
Date |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2008 |
Prozeduren für Add-Ins auf Anwendungsebene hinzugefügt. |
SP1-Featureänderung. |