Jak: ochrona części dokumentów przy użyciu 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.
Dotyczy: Informacje przedstawione w tym temacie dotyczą projektów na poziomie dokumentu i projektów na poziomie aplikacji dla programów Word 2013 i Word 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacji 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 Jak: dodawanie formantów zawartości do dokumentów programu Word.
Aby chronić formant zawartości w czasie projektowania
W dokumencie, który znajduje się w Visual Studio designer, zaznacz formant zawartości, który chcesz chronić.
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.
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
W dokumencie, który znajduje się w Visual Studio designer, zaznacz obszar, który chcesz chronić.
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 Jak: Pokaż kartę Deweloper na Wstążce.
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
Jak: dodawanie formantów zawartości do dokumentów programu Word
Koncepcje
Automatyzowanie programu Word przy użyciu obiektów rozszerzony
Elementy hosta i Omówienie kontroli hosta
Ograniczenia programowy hosta elementów i kontrolek hosta
Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania