مشاركة عبر


كيفية القيام بما يلي: حماية أجزاء من المستند باستخدام عناصر تحكم المحتوى

ينطبق على

تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع.

نوع المشروع

  • مشروعات على مستوى المستند

  • مشروعات على مستوى التطبيق

إصدار Microsoft Office

  • Word 2007

  • Word 2010

عندما تقوم بحماية جزء من مستند ، تمنع المستخدمين من تغيير أو حذف المحتوى في هذا الجزء من المستند. هناك عدة طرق يمكنك بها حماية أجزاء من مستند Microsoft Office Word باستخدام عناصر تحكم المحتوى:

  • يمكنك حماية عنصر تحكم المحتوى.

  • يمكنك حماية جزء من المستند غير عنصر تحكم المحتوى.

حماية عنصر تحكم المحتوى

يمكنك منع المستخدمين من تحرير أو حذف عنصر تحكم المحتوى بواسطة إعداد خصائص عنصر التحكم في مشروع على مستوى المستند في وقت التصميم أو في وقت التشغيل .

يمكنك أيضاً حماية عناصر تحكم المحتوى التي تقوم بإضافتها إلى المستند في وقت التشغيل باستخدام مشروع على مستوى التطبيق. لمزيد من المعلومات، راجع كيفية القيام بما يلي: إضافة عناصر تحكم محتويات إلى مستندات Word.

لحماية عنصر تحكم المحتوى في وقت التصميم

  1. في المستند الذي تتم استضافته في مصمم Visual Studio ، حدد عناصر تحكم المحتوى التى تريد حمايتها .

  2. في النافذة خصائص قم بتعيين واحدة من الخاصيتين التاليتين أو كلاهما :

    • لمنع مستخدمين من تحرير عنصر التحكم ، قم بتعيين LockContents إلى True.

    • لمنع المستخدمين من حذف عنصر التحكم قم بتعيين LockContentControl إلى True.

  3. انقر فوق موافق.

لحماية عنصر تحكم المحتوى في وقت التشغيل

  • قم بتعيين الخاصية 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 لعنصر التحكم.

لحماية منطقة من المستند في وقت التصميم

  1. في المستند الذي تتم استضافته في مصمم Visual Studio ، حدد المنطقة التي تريد حمايتها .

  2. انقر فوق علامة تبويب المطور على الشريط.

    ملاحظة

    في حالة عدم ظهور علامة التبويب المطور، يجب أولاً إظهاره. لمزيد من المعلومات، راجع كيفية القيام بما يلي: إظهار علامة تبويب المطور على الشريط.

  3. في المجموعة عناصر تحكم (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 عن طريق استخدام الكائنات الموسعة

عناصر تحكم المحتوى

نظرة عامة حول العناصر المضيفة و عناصر تحكم المضيف

القيود البرمجية للعناصر مضيفة وعناصر التحكم

إضافة عناصر تحكم إلى مستندات Office في وقت التشغيل

أساليب مساعدة لعناصر تحكم المضيف