كيفية القيام بما يلي: حماية أجزاء من المستند باستخدام عناصر تحكم المحتوى
ينطبق على |
---|
تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع. نوع المشروع
إصدار Microsoft Office
|
عندما تقوم بحماية جزء من مستند ، تمنع المستخدمين من تغيير أو حذف المحتوى في هذا الجزء من المستند. هناك عدة طرق يمكنك بها حماية أجزاء من مستند Microsoft Office Word باستخدام عناصر تحكم المحتوى:
يمكنك حماية عنصر تحكم المحتوى.
يمكنك حماية جزء من المستند غير عنصر تحكم المحتوى.
حماية عنصر تحكم المحتوى
يمكنك منع المستخدمين من تحرير أو حذف عنصر تحكم المحتوى بواسطة إعداد خصائص عنصر التحكم في مشروع على مستوى المستند في وقت التصميم أو في وقت التشغيل .
يمكنك أيضاً حماية عناصر تحكم المحتوى التي تقوم بإضافتها إلى المستند في وقت التشغيل باستخدام مشروع على مستوى التطبيق. لمزيد من المعلومات، راجع كيفية القيام بما يلي: إضافة عناصر تحكم محتويات إلى مستندات Word.
لحماية عنصر تحكم المحتوى في وقت التصميم
في المستند الذي تتم استضافته في مصمم Visual Studio ، حدد عناصر تحكم المحتوى التى تريد حمايتها .
في النافذة خصائص قم بتعيين واحدة من الخاصيتين التاليتين أو كلاهما :
لمنع مستخدمين من تحرير عنصر التحكم ، قم بتعيين LockContents إلى True.
لمنع المستخدمين من حذف عنصر التحكم قم بتعيين LockContentControl إلى True.
انقر فوق موافق.
لحماية عنصر تحكم المحتوى في وقت التشغيل
قم بتعيين الخاصية LockContents الخاصة بعنصر تحكم المحتوى إلى true لمنع المستخدمين من تحرير عنصر التحكم وقم بتعيين الخاصية LockContentControl إلى true لمنع المستخدمين من حذف عنصر التحكم.
يوضح المثال التالي من التعليمات البرمجية استخدام الخصائص LockContents و LockContentControl من كائنين RichTextContentControl مختلفين في مشروع على مستوى المستند . لتشغيل هذه التعليمات البرمجية، قم بإضافة التعليمات البرمجية إلى الفئة ThisDocument في مشروعك، ثم قم باستدعاء الأسلوب AddProtectedContentControls من معالج الحدث ThisDocument_Startup.
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; }
يوضح المثال التالي من التعليمات البرمجية استخدام الخصائص LockContents و LockContentControl من كائنين RichTextContentControl مختلفين في مشروع على مستوى التطبيق . لتشغيل هذه التعليمات البرمجية، قم بإضافة التعليمات البرمجية إلى الفئة ThisAddIn في مشروعك، ثم قم باستدعاء الأسلوب AddProtectedContentControls من معالج الحدث ThisAddIn_Startup.
Dim deletableControl As Microsoft.Office.Tools.Word.RichTextContentControl Dim editableControl As Microsoft.Office.Tools.Word.RichTextContentControl Private Sub AddProtectedContentControls() ' Use the following line of code in projects that target the .NET Framework 4. Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _ Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' 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() { // Use the following line of code in projects that target the .NET Framework 4. Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // 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; }
حماية جزء من المستند غير عنصر تحكم المحتوى
يمكنك منع المستخدمين من تغيير مساحة من المستند عن طريق وضع المساحة في GroupContentControl. وهذا مفيد في السيناريوهات التالية:
تريد حماية منطقة لا تحتوي على عناصر تحكم المحتوى.
تريد حماية منطقة تحتوي بالفعل على عناصر تحكم المحتوى ولكن النص أو العناصر الأخرى التى تريد حمايتها غير موجودة في عناصر تحكم المحتوى.
ملاحظة
إذا قمت بإنشاء GroupContentControl التي تحتوي على عناصر تحكم المحتوي المضمنة, لا يتم حماية عناصر تحكم المحتوي المضمنة تلقائياً. لمنع المستخدمين من تحرير عنصر تحكم محتوى مضمن, استخدم الخاصية LockContents لعنصر التحكم.
لحماية منطقة من المستند في وقت التصميم
في المستند الذي تتم استضافته في مصمم Visual Studio ، حدد المنطقة التي تريد حمايتها .
انقر فوق علامة تبويب المطور على الشريط.
ملاحظة
في حالة عدم ظهور علامة التبويب المطور، يجب أولاً إظهاره. لمزيد من المعلومات، راجع كيفية القيام بما يلي: إظهار علامة تبويب المطور على الشريط.
في المجموعة عناصر تحكم (Controls) انقر فوق الزر المنسدل المجموعة (Group) ثم انقر فوق المجموعة (Group).
GroupContentControl الذي يحتوي على المنطقة المحمية ، يتم تلقائياً إنشاؤه في الفئة ThisDocument في مشروعك. الحد الذي يمثل عنصر تحكم المجموعة يكون مرئياً في وقت التصميم، و لكن لا يوجد أى حد مرئي في وقت التشغيل .
لحماية منطقة فى مستند في وقت التشغيل
حدد المنطقة التي تريد حمايتها برمجياً، ثم قم باستدعاء الأسلوب AddGroupContentControl لإنشاء GroupContentControl.
يقوم مثال "التعليمات البرمجية لمشروع على مستوى المستند" التالى بإضافة نص إلى الفقرة الأولى في المستند, تحديد الفقرة الأولى ثم إنشاء مثيل لــ GroupContentControl. لتشغيل هذه التعليمات البرمجية، قم بإضافة التعليمات البرمجية إلى الفئة ThisDocument في مشروعك، ثم قم باستدعاء الأسلوب ProtectFirstParagraph من معالج الحدث ThisDocument_Startup.
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"); }
يقوم مثال التعليمات البرمجية التالي للمشروع على مستوى التطبيق بإضافة نص إلى الفقرة الأولى في المستند النشط , تحديد الفقرة الأولى ثم إنشاء مثيل لــ GroupContentControl. لتشغيل هذه التعليمات البرمجية، قم بإضافة التعليمات البرمجية إلى الفئة ThisAddIn في مشروعك، ثم قم باستدعاء الأسلوب ProtectFirstParagraph من معالج الحدث ThisAddIn_Startup.
Dim groupControl1 As Microsoft.Office.Tools.Word.GroupContentControl Private Sub ProtectFirstParagraph() ' Use the following line of code in projects that target the .NET Framework 4. Dim VstoDocument As Microsoft.Office.Tools.Word.Document = _ Globals.Factory.GetVstoObject(Me.Application.ActiveDocument) ' In projects that target the .NET Framework 3.5, use the following line of code. ' 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() { // Use the following line of code in projects that target the .NET Framework 4. Microsoft.Office.Tools.Word.Document vstoDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument); // In projects that target the .NET Framework 3.5, use the following line of code. // 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"); }
راجع أيضًا:
المهام
كيفية القيام بما يلي: إضافة عناصر تحكم محتويات إلى مستندات Word
المبادئ
أتمتة Word عن طريق استخدام الكائنات الموسعة
نظرة عامة حول العناصر المضيفة و عناصر تحكم المضيف
القيود البرمجية للعناصر مضيفة وعناصر التحكم