مشاركة عبر


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

ينطبق على

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

نوع المشروع

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

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

إصدار Microsoft Office

  • Excel 2007 و Excel 2010

  • Word 2007 و Word 2010

يمكنك إضافة عناصر تحكم إلى مستند Microsoft Office Word و مصنف Microsoft Office Excel و أيضاً إزالتها، في وقت التشغيل . عناصر التحكم التي تقوم بإضافتها إلى المستندات في وقت التشغيل تسمى عناصر تحكم حيوية (ديناميكية) .

يوفر هذا الموضوع المعلومات التالية:

  • إدارة عناصر التحكم في وقت التشغيل باستخدام مجموعات عناصر التحكم

  • إضافة عناصر تحكم المضيف إلى المستندات

  • إضافة عناصر تحكم Windows Forms إلى المستندات

ارتباط إلى فيديو للحصول على عرض فيديو توضيحي ذي صلة، راجع كيف يمكنني القيام بما يلي: إضافة عناصر التحكم إلى سطح المستند في وقت التشغيل ؟.

إدارة عناصر التحكم في وقت التشغيل باستخدام مجموعات عناصر التحكم

لإضافة أو الحصول على عناصر التحكم أو إزالتها في وقت التشغيل ، استخدم أساليب المساعدة لكائنات Microsoft.Office.Tools.Excel.ControlCollection و Microsoft.Office.Tools.Word.ControlCollection .

تعتمد الطريقة التي تصل بها إلى هذه الكائنات على نوع المشروع الذي تقوم بتطويره :

إضافة عناصر تحكم.

تتضمن الأنواع Microsoft.Office.Tools.Excel.ControlCollection و Microsoft.Office.Tools.Word.ControlCollection الأساليب المساعدة التي يمكنك استخدامها لإضافة عناصر تحكم المضيف و عناصر تحكم Windows Forms الشائعة إلى المستندات و المصنفات . Each method name has the format Add<control class>, where control class is the class name of the control that you want to add. For example, to add a NamedRange control to your document, use the AddNamedRange method. للحصول على قائمة من الأساليب المساعدة ، راجع أساليب مساعدة لعناصر تحكم المضيف و الأساليب المساعدة لعناصر تحكم Windows Forms.

مثال التعليمات البرمجية التالي يضيف NamedRange إلى Sheet1 في مشروع على مستوى المستند لـ Excel.

Dim range1 As Excel.Range = Globals.Sheet1.Range("A1", "D5")
Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource")
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");

الوصول إلى عناصر التحكم وحذفها

يمكنك استخدام الخاصية Controls الخاصة بــ Microsoft.Office.Tools.Excel.Worksheet أو Microsoft.Office.Tools.Word.Document للتكرار خلال كافة عناصر التحكم في المستند الخاص بك ، بما في ذلك عناصر التحكم المضافة في وقت التصميم. تدعى عناصر التحكم الذي قمت بإضافتها في وقت التصميم أيضاً عناصر تحكم ثابتة .

يمكنك إزالة عناصر التحكم الحيوية عن طريق استدعاء الأسلوب Delete من عنصر التحكم أو بواسطة استدعاء الأسلوب Remove لكل مجموعة Controls . يستخدم مثال التعليمات البرمجية التالي الأسلوب Remove لإزالة NamedRange من Sheet1 في مشروع على مستوى المستند لـ Excel.

Globals.Sheet1.Controls.Remove("ChartSource")
Globals.Sheet1.Controls.Remove("ChartSource");

لا يمكنك إزالة عناصر التحكم الثابتة في وقت التشغيل. إذا حاولت استخدام الأسلوب Delete أو Remove لإزالة عنصر التحكم الثابت ، سيتم طرح CannotRemoveControlException .

ملاحظة

لا تقم بإزالة عناصر التحكم برمجيًا في معالج الحدث Shutdown للمستند. عناصر واجهة المستخدم للمستند لن تعود متوفرة عندما يتم رفع الحدث Shutdown. إذا كنت ترغب في إزالة عناصر تحكم قبل إغلاق المستند ، قم بإضافة التعليمات البرمجية إلى معالج الحدث لحدث آخر مثل Document.BeforeClose أو Document.BeforeSave لـ Word، أو Workbook.BeforeClose, أو Workbook.BeforeSave لـ Excel.

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

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

لمزيد من المعلومات حول عناصر تحكم المضيف، راجع نظرة عامة حول العناصر المضيفة و عناصر تحكم المضيف.

عندما يتم حفظ مستند ثم إغلاقه، يتم قطع اتصال كافة عناصر تحكم المضيف التي تم إنشاؤها بشكل حيوي من الأحداث الخاصة بها كما أنها تفقد وظائف ربط البيانات الخاصة بها . يمكنك إضافة التعليمات البرمجية إلى الحل الخاص بك لإعادة إنشاء عناصر تحكم المضيف عند إعادة فتح المستند. لمزيد من المعلومات، راجع استمرارية عناصر التحكم الديناميكي في مستندات Office.

ملاحظة

لا يتم توفير الأساليب المساعدة لـعناصر تحكم المضيف التالية لأن عناصر التحكم تلك لا يمكن إضافتها بشكل برمجي إلى المستندات: XmlMappedRange ، XMLNode و XMLNodes

إضافة عناصر تحكم Windows Forms إلى المستندات

عندما تقوم برمجيًا بإضافة عنصر تحكم Windows Forms إلى مستند ، يجب عليك توفير موقع عنصر التحكم و اسم يعرف عنصر التحكم بشكل فريد. Visual Studio Tools لوقت تشغيل Office يوفر الأساليب المساعدة لكل عنصر تحكم. يتم تحميل هذه الأساليب بشكل زائد، بحيث يمكنك تمرير إما نطاق أو إحداثيات معينة إلى موقع عنصر التحكم. للحصول على إرشادات خاصة، راجع كيفية القيام بما يلي: إضافة عناصر تحكم Windows Forms إلى مستندات Office.

عندما يتم حفظ المستند ثم إغلاقه ، تتم إزالة كافة عناصر تحكم Windows Forms التي تم إنشاؤها بشكل حيوي من المستند. يمكنك إضافة التعليمات البرمجية إلى الحل الخاص بك لإعادة إنشاء عناصر التحكم عند إعادة فتح المستند. إذا قمت بإنشاء عناصر تحكم Windows Forms الحيوية باستخدام وظائف إضافية على مستوى التطبيق ، يتم ترك برامج تضمين ActiveX لعناصر التحكم في المستند. لمزيد من المعلومات، راجع استمرارية عناصر التحكم الديناميكي في مستندات Office.

ملاحظة

لا يمكن إضافة عناصر تحكم Windows Forms برمجيًا للمستندات المحمية . إذا كنت برمجياً لا تقوم بحماية مستند Word أو ورقة عمل Excel لإضافة عنصر تحكم ، يجب عليك كتابة تعليمات برمجية إضافية لإزالة برنامج تضمين ActiveX الخاص بعنصر التحكم عند إغلاق المستند. لا يتم حذف برنامج تضمين ActiveX الخاص بعنصر التحكم تلقائياً من المستندات المحمية.

إضافة عناصر تحكم مخصصة

إذا كنت ترغب في إضافة System.Windows.Forms.Control غير معتمد بواسطة الأساليب المساعدة المتوفرة (على سبيل المثال، عنصر تحكم مخصص للمستخدم ) ، استخدم الطرق التالية:

لإضافة عنصر التحكم، قم بتمرير System.Windows.Forms.Control ، و موقع عنصر التحكم و اسم فريد لعنصر التحكم للأسلوب AddControl . يقوم الأسلوب AddControl بإرجاع كائن يقوم بتعريف كيفية تفاعل عنصر التحكم مع ورقة العمل أو المستند. يعتمد نوع الكائن الذي تم إرجاعه على المشروع :

  • For projects that target the .NET Framework 4, this method returns a Microsoft.Office.Tools.Excel.ControlSite (for Excel) or a Microsoft.Office.Tools.Word.ControlSite (for Word) object.

  • في Microsoft المكتب 2010 التطبيقات، والنقر فوق علامة تبويب Microsoft.Office.Tools.Excel.OLEObjectملف فتح عرض Backstage.Microsoft.Office.Tools.Word.OLEControl

The following code example demonstrates how to use the AddControl(Control, Range, String) method to dynamically add a custom user control to a worksheet in a document-level Excel project that targets the .NET Framework 4. In this example, the user control is named UserControl1, and the Range is named range1. To use this example, run it from a Sheetn class in the project.

Dim customControl As New UserControl1()

Dim dynamicControl As Microsoft.Office.Tools.Excel.ControlSite = _
    Me.Controls.AddControl(customControl, range1, "dynamic")
UserControl1 customControl = new UserControl1();

Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
    this.Controls.AddControl(customControl, range1, "dynamic");

استخدام أعضاء عناصر التحكم المخصصة

بعد استخدام أحد أساليب AddControl لإضافة عنصر تحكم إلى ورقة العمل أو المستند ، يمكنك الآن أن يكون لديك كائني تحكم مختلفين :

  • System.Windows.Forms.Control الذي يمثل عنصر التحكم المخصص .

  • The ControlSite, OLEObject, or OLEControl object that represents the control after it was added to the worksheet or document.

العديد من الخصائص و الأساليب يتم مشاركتها بين عناصر التحكم هذه. ومع ذلك، إذا قمت بإضافة من "شريط" (XML) العنصر للمشروع المكتب، يمكنك إضافة XML إلى ملف XML شريط لتخصيص عرض Backstage.

  • ل المزيد من المعلومات حول عناصر System.Windows.Forms.Control"شريط" (XML) ، راجع.

  • To access members that are shared by the controls, use the ControlSite, OLEObject, or OLEControl object.

تظهر قائمة مختصرة عند النقر بزر الماوس الأيمن في أحد مستندات أو تطبيق النافذة.System.Windows.Forms.Control Always use methods or properties of the ControlSite, OLEObject, or OLEControl object unless the method or property needed is not available; only then should you reference the System.Windows.Forms.Control.

على سبيل المثال، كلا من الفئة ControlSite و الفئة System.Windows.Forms.Control يحتوي على الخاصية Top . للحصول على المسافة بين الجزء العلوي من عنصر التحكم و بين قمة المستند أو تعيينها، استخدم الخاصية Top من ControlSite ، و ليس الخاصية Top من System.Windows.Forms.Control.

' Property is set in relation to the document.
dynamicControl.Top = 100

' Property is set in relation to the container control.
customControl.Top = 100
// Property is set in relation to the document.
dynamicControl.Top = 100;

// Property is set in relation to the container control.
customControl.Top = 100;

راجع أيضًا:

المهام

كيفية القيام بما يلي: إضافة عناصر تحكم ListObject إلى أوراق العمل

كيفية القيام بما يلي: إضافة عناصر التحكم NamedRange إلى أوراق العمل

كيفية القيام بما يلي: إضافة عناصر تحكم المخطط البياني إلى أوراق العمل

كيفية القيام بما يلي: إضافة عناصر تحكم محتويات إلى مستندات Word

كيفية القيام بما يلي: إضافة عناصر تحكم الإشارة المرجعية إلى مستندات Word

كيفية القيام بما يلي: إضافة عناصر تحكم Windows Forms إلى مستندات Office

المبادئ

استمرارية عناصر التحكم الديناميكي في مستندات Office

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

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

نظرة عامة على عناصر تحكم Windows Forms فى مستندات Office

موارد أخرى

عناصر التحكم في مستندات Office