نظرة عامة على نموذج كائن الشريط
ينطبق على |
---|
تنطبق المعلومات الموجودة في هذا الموضوع فقط على أنواع المشاريع وإصدارات Microsoft Office التالية: لمزيد من المعلومات، راجع الميزات المتوفرة بواسطة تطبيقات Office و نوع المشروع. نوع المشروع
إصدار Microsoft Office
|
يقوم Visual Studio Tools لوقت تشغيل Office بعرض نموذج كائن مكتوب بشكل جيد ويمكنك استخدام ذلك في الحصول على وتعيين خصائص عناصر التحكم الخاصة بالشريط وذلك في وقت التشغيل. على سبيل المثال، يمكنك إضافة عناصر القائمة أو إظهار وإخفاء عناصر التحكم سياقياً بشكل حيوي.
يمكنك أيضاً إضافة علامات التبويب والمجموعات وعناصر التحكم إلى الشريط، ولكن يتم ذلك فقط قبل أن يتم تحميل الشريط من قبل تطبيق Office. للحصول على مزيد من المعلومات, راجع خصائص الإعداد التي تصبح للقراءة فقط .
يتكون نموذج كائن الشريط هذا بشكل أساسي من فئة الشريطو أحداث الشريط و فئات عناصر التحكم للشريط .
فئة الشريط
عند إضافة عنصر شريط (مصمم مرئى) جديد إلى المشروع، يقوم Visual Studio بإضافة فئة الشريط إلى ملف project.c الخاص بك وذلك في حالة أن المشروع يستهدف .NET Framework 4، فئة الشريط ترث من الفئة RibbonBase . إذا كان مشروعك يستهدف .NET Framework 3.5، فإن فئة الشريط ترث من الفئة OfficeRibbon.
تظهر هذه الفئة كفئة جزئية والتي تقسم بين الملف الذي يحتوي على التعليمة البرمجية الخاصة بالشريط والملف الذي يحتوي على التعليمة البرمجية للتصميم الخاص بالشريط .
أحداث الشريط
تحتوي فئة الشريط على الأحداث الثلاثة التالية:
المشاريع التي تستهدف .NET Framework 4 |
المشاريع التي تستهدف .NET Framework 3.5 |
الوصف |
---|---|---|
يُرفع عندما يقوم تطبيق Office بتحميل تخصيصات الشريط. يتم إضافة معالج الأحداث المسمى Load تلقائياً إلى ملف التعليمة البرمجية الخاصة بالشريط. استخدم معالج الحدث هذا لتشغيل تعليمة برمجية مخصصة عندما يتم تحميل الشريط. |
||
يتيح لك ذلك التخزين المؤقت للصور في تخصيصات الشريط عندما يتم تحميل الشريط. يمكنك الحصول على أداء أفضل قليلاً إذا قمت بكتابة كود يقوم بالتخزين المؤقت لصور الشريط في معالج الأحداث. لمزيد من المعلومات، راجع LoadImage. |
||
يعمل عندما يتم إغلاق مثيل الشريط. |
عناصر التحكم الخاصة بالشريط
تحتوي مساحة الاسم المسماة Microsoft.Office.Tools.Ribbonعلى نوع لكل عنصر تحكم في مجموعة عناصر تحكم الشريط الخاصة بـ Office الخاصة بـمربع الأدوات.
يعرض الجدول التالي النوع لكل عنصر تحكم في الشريط. للحصول على وصف لكل عنصر تحكم، راجع نظرة عامة على الشريط.
اسم عنصر التحكم |
اسم الفئة |
---|---|
صندوق: |
|
الزر |
|
مجموعة الزر (ButtonGroup) |
|
CheckBox |
|
مربع تحرير و سرد |
|
المنسدلة (DropDown) |
|
صندوق التحرير (EditBox) |
|
معرض |
|
المجموعة |
|
Label |
|
قائمة |
|
فاصل |
|
زر الانقسام (SplitButton) |
|
علامة التبويب |
|
زر التبديل (ToggleButton) |
مساحة الاسم Microsoft.Office.Tools.Ribbon تستخدم البادئة "شريط" لهذه الأنواع لتجنب تضارب الاسم مع أسماء فئات عنصر التحكم في مساحة الاسمSystem.Windows.Forms.
عندما تقوم بإضافة عنصر تحكم إلى مصمم الشريط, يقوم مصمم الشريط بالتصريح بفئة عنصر التحكم كحقل في ملف التعليمات البرمجية "مصمم الشريط".
المهام الشائعة باستخدام خصائص تحكم الشريط
يحتوي كل عنصر تحكم شريط على خصائص يمكنك استخدامها لتنفيذ مهام مختلفة مثل تعيين تسمية لعنصر تحكم أو إخفاء و إظهار عناصر التحكم.
في بعض الحالات تصبح الخصائص للقراءة فقط بعد تحميل الشريط أو بعد إضافة عنصر تحكم للقائمة الديناميكية. للحصول على مزيد من المعلومات, راجع خصائص الإعداد التي تصبح للقراءة فقط .
يصف الجدول التالي بعض المهام التي يمكن تنفيذها باستخدام خصائص تحكم الشريط.
لهذه المهمة: |
قم بعمل: |
---|---|
إخفاء أو إظهار عنصر التحكم. |
استخدم الخاصية Visible. |
تمكين أو تعطيل عنصر التحكم. |
استخدم الخاصية Enabled. |
تعيين حجم عنصر التحكم. |
استخدم الخاصية ControlSize. |
احصل على الصورة التي تظهر على عنصر التحكم. |
استخدم الخاصية Image. |
تغيير تسمية عنصر التحكم. |
استخدم الخاصية Label. |
أضف البيانات المعرفة من قبل المستخدم إلى عنصر التحكم. |
استخدم الخاصية Tag. |
احصل على العناصر الموجودة في RibbonBox ، RibbonDropDown ، RibbonGallery, أو عنصر التحكم RibbonSplitButton. |
استخدم الخاصية Items. |
اضف العناصر إلى عنصر التحكم RibbonComboBox ، RibbonDropDown, أو RibbonGallery. |
استخدم الخاصية Items. |
اضف عناصر التحكم إلىRibbonMenu. |
استخدم الخاصية Items. لإضافة عناصر تحكم إلى RibbonMenu بعد تحميل الشريط إلى تطبيق Office، يجب عليك تعيين الخاصية Dynamic إلى true قبل أن يتم تحميل الشريط إلى تطبيق Office. للحصول على مزيد من المعلومات, راجع خصائص الإعداد التي تصبح للقراءة فقط . |
للحصول على العنصر المحدد منRibbonComboBox ، |
استخدم الخاصية SelectedItem. للحصول على RibbonComboBox ، استخدم الخاصية Text. |
قم بالحصول على المجموعات على RibbonTab. |
استخدم الخاصية Groups. |
حدد عدد الصفوف والأعمدة التي تظهر في RibbonGallery. |
استخدم الخاصيتين RowCount و ColumnCount. |
تعيين الخصائص التي تصبح للقراءة فقط
بعض الخصائص يمكن فقط تعيينها قبل تحميل الشريط. هناك ثلاثة أماكن لتعيين هذه الخصائص:
في نافذة Visual Studio خصائص .
في المنشئ لفئة الشريط.
في الأسلوب CreateRibbonExtensibilityObject فى الفئة ThisAddin ، ThisWorkbook, أو ThisDocumentمن مشروعك.
توفر القوائم الحيوية بعض الاستثناءات. يمكنك إنشاء عناصر التحكم الجديدة و تعيين خصائصها ثم إضافتها إلى القائمة الحيوية في وقت التشغيل, حتى بعد تحميل الشريط الذي يحتوي على القائمة.
خصائص عناصر التحكم التي قمت بإضافتها إلى القائمة الديناميكية يمكن تعيينها في أي وقت.
للحصول على مزيد من المعلومات, راجع خصائص الإعداد التي تصبح للقراءة فقط .
تعيين الخصائص في الدالة الإنشائية للشريط
يمكنك تعيين خصائص عنصر تحكم الشريط في الدالة الإنشائية لفئة الشريط. يجب أن يظهر هذا الرمز بعد الاستدعاء بأسلوبInitializeComponent. المثال التالي يضيف زر جديد إلى مجموعة ما إذا كان الوقت الحالي 17: 00 بتوقيت المحيط الهادي (UTC-8) أو لاحقاً.
بالنسبة للمشاريع التي تستهدف .NET Framework 4 ، اضف التعليمة البرمجية التالية:
<System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New()
MyBase.New(Globals.Factory.GetRibbonFactory())
'This call is required by the Component Designer.
InitializeComponent()
Dim MyButton As Microsoft.Office.Tools.Ribbon.RibbonButton = _
Me.Factory.CreateRibbonButton()
MyButton.Label = "New Button"
If System.DateTime.Now.Hour > 16 Then
Group1.Items.Add(MyButton)
End If
End Sub
public Ribbon1()
: base(Globals.Factory.GetRibbonFactory())
{
InitializeComponent();
if (System.DateTime.Now.Hour > 16)
{
Microsoft.Office.Tools.Ribbon.RibbonButton button =
this.Factory.CreateRibbonButton();
button.Label = "New Button";
group1.Items.Add(button);
}
}
بالنسبة للمشاريع التي تستهدف .NET Framework 3.5, 1. اضف التعليمة البرمجية التالية:
<System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New()
MyBase.New()
'This call is required by the Component Designer.
InitializeComponent()
If DateTime.Now.Hour > 16 Then
Group1.Items.Add(New RibbonButton())
CType(Group1.Items.Last(), RibbonButton).Label = "New Button"
End If
End Sub
public Ribbon1()
{
InitializeComponent();
if (DateTime.Now.Hour > 16)
{
group1.Items.Add(new RibbonButton());
((RibbonButton)group1.Items.Last()).Label = "New Button";
}
}
يظهر المُنشئ في ملف التعليمات البرمجية للشريط. في مشاريع Visual C# التي قمت بترقيتها من 2008 Visual Studio
يظهر المُنشئ في ملف التعليمات البرمجية للشريط في مشاريع Visual Basic أو في مشاريع Visual C# التي قمت بإنشائها في 2010 Visual Studio. This file is named YourRibbonItem.Designer.cs or YourRibbonItem.Designer.vb. To see this file in Visual Basic projects, you must first click the Show All Files button in Solution Explorer.
إعداد الخصائص في أسلوب CreateRibbonExtensibilityObject
يمكنك تعيين خصائص أحد عناصر تحكم الشريط عند تجاوز أسلوب CreateRibbonExtensibilityObject في الفئة ThisAddin ، أو ThisWorkbook, أو ThisDocument من المشروع. ولمزيد من المعلومات حول الأسلوب CreateRibbonExtensibilityObject ، راجع نظرة عامة على الشريط.
يقوم المثال التالي بإعداد خصائص الشريط في أسلوب CreateRibbonExtensibilityObject للفئة ThisWorkbook في مشروع مصنف Excel.
بالنسبة للمشاريع التي تستهدف .NET Framework 4 ، اضف التعليمة البرمجية التالية:
Protected Overrides Function CreateRibbonExtensibilityObject() _
As Microsoft.Office.Core.IRibbonExtensibility
Dim myCondition As Boolean = True
If myCondition = True Then
Dim tempRibbon As New Ribbon1()
tempRibbon.Tab1.ControlId.ControlIdType = _
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
tempRibbon.Tab1.ControlId.OfficeId = "TabHome"
Return Globals.Factory.GetRibbonFactory.CreateRibbonManager _
(New Microsoft.Office.Tools.Ribbon.IRibbonExtension() {tempRibbon})
Else
Dim tempRibbon As New Ribbon2()
tempRibbon.Tab1.ControlId.ControlIdType = _
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
tempRibbon.Tab1.ControlId.OfficeId = "TabInsert"
Return Globals.Factory.GetRibbonFactory.CreateRibbonManager _
(New Microsoft.Office.Tools.Ribbon.IRibbonExtension() {tempRibbon})
End If
End Function
protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
{
bool myCondition = false;
if (myCondition == true)
{
Ribbon1 tempRibbon = new Ribbon1();
tempRibbon.tab1.ControlId.ControlIdType =
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
tempRibbon.tab1.ControlId.OfficeId = "TabHome";
return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
new Microsoft.Office.Tools.Ribbon.IRibbonExtension[]
{ tempRibbon });
}
else
{
Ribbon2 tempRibbon = new Ribbon2();
tempRibbon.tab1.ControlId.ControlIdType =
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
tempRibbon.tab1.ControlId.OfficeId = "TabInsert";
return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { tempRibbon });
}
}
بالنسبة للمشاريع التي تستهدف .NET Framework 3.5, 1. اضف التعليمة البرمجية التالية:
Protected Overrides Function CreateRibbonExtensibilityObject() _
As Microsoft.Office.Core.IRibbonExtensibility
Dim myCondition As Boolean = True
If myCondition = True Then
Dim tempRibbon As New Ribbon1()
tempRibbon.Tab1.ControlId.ControlIdType = _
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
tempRibbon.Tab1.ControlId.OfficeId = "TabHome"
Return New Microsoft.Office.Tools.Ribbon.RibbonManager _
(New Microsoft.Office.Tools.Ribbon.OfficeRibbon() {tempRibbon})
Else
Dim tempRibbon As New Ribbon2()
tempRibbon.Tab1.ControlId.ControlIdType = _
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office
tempRibbon.Tab1.ControlId.OfficeId = "TabInsert"
Return New Microsoft.Office.Tools.Ribbon.RibbonManager _
(New Microsoft.Office.Tools.Ribbon.OfficeRibbon() {tempRibbon})
End If
End Function
protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
{
bool myCondition = true;
if (myCondition == true)
{
Ribbon1 tempRibbon = new Ribbon1();
tempRibbon.tab1.ControlId.ControlIdType =
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
tempRibbon.tab1.ControlId.OfficeId = "TabHome";
return new Microsoft.Office.Tools.Ribbon.RibbonManager(
new Microsoft.Office.Tools.Ribbon.OfficeRibbon[]
{ tempRibbon });
}
else
{
Ribbon2 tempRibbon = new Ribbon2();
tempRibbon.tab1.ControlId.ControlIdType =
Microsoft.Office.Tools.Ribbon.RibbonControlIdType.Office;
tempRibbon.tab1.ControlId.OfficeId = "TabInsert";
return new Microsoft.Office.Tools.Ribbon.RibbonManager(
new Microsoft.Office.Tools.Ribbon.OfficeRibbon[]
{ tempRibbon });
}
}
تعيين الخصائص التي تصبح للقراءة فقط
يوضح الجدول التالي الخصائص التي يمكن فقط تعيينها قبل تحميل الشريط.
ملاحظة
يمكنك تعيين خصائص عناصر التحكم علي القوائم الحيوية في أي وقت. لا ينطبق هذا الجدول في هذه الحالة.
الخصائص |
فئة تحكم الشريط |
---|---|
نمط المربع (BoxStyle) |
|
نوع الزر (ButtonType) |
|
عدد الأعمدة (ColumnCount) |
|
معرف عنصر التحكم (ControlId) |
|
مشغل الحوار (DialogLauncher) |
|
ديناميكي |
|
عمومي |
|
المجموعات |
|
اسم الصورة (ImageName) |
|
حجم العنصر |
|
أقصى طول (MaxLength) |
|
الاسم |
|
Position |
|
نوع الشريط (RibbonType) |
|
عدد الصفوف (RowCount) |
|
إظهار صورة العنصر (ShowItemImage) |
|
إظهار تسمية العنصر (ShowItemLabel) |
|
إظهار تحديد العنصر (ShowItemSelection) |
|
سلسلة الحجم (SizeString) |
|
البدء من الصفر (StartFromScratch) |
|
علامات التبويب |
|
Title |
إعداد خصائص الأشرطة التي تظهر في متفحص Outlook
يتم إنشاء مثيل جديد كل مرة يقوم مستخدم بفتح المتفحص الذي يُظهر الشريط. ومع ذلك، يمكنك تعيين الخصائص المسرودة في الجدول أعلاه فقط قبل إنشاء المثيل الأول من "الشريط". بعد إنشاء المثيل الأول, هذه الخصائص تصبح للقراءة فقط لأن المثيل الأول يعرّف ملف XML الذي يستخدمه Outlook لتحميل الشريط.
إذا كان لديك منطق شرطي يعين أي من هذه الخصائص قيمته مختلفة عندما يتم إنشاء المثيلات الأخرى من الشريط, فهذه التعليمة البرمجية لن يكون لها أي تأثير.
ملاحظة
تأكد من أن خاصية الاسم يتم تعيينها لكل عنصر تحكم تقوم بإضافته إلى شريط Outlook. إذا قمت بإضافة عنصر تحكم إلى شريط Outlook في وقت التشغيل يجب عليك تعيين هذه الخاصية في التعليمات البرمجية. إذا قمت بإضافة خاصية إلى شريط Outlook في وقت التصميم ، يتم تعيين الخاصية Name تلقائياً.
أحداث تحكم الشريط
كل فئة تحكم تحتوي على حدث واحد أو أكثر. يصف الجدول التالي هذه الأحداث.
الحدث |
الوصف |
---|---|
Click |
يحدث عند النقر فوق التحكم. |
TextChanged |
يحدث عند تغيير نص مربع التحرير والسرد أو مربع التحرير. |
ItemsLoading |
يحدث عندما تكون مجموعة Items من التحكم مطلوبة من قبل Office. تقوم Office بتخزين مجموعة Items حتى تقوم التعليمات البرمجية الخاصة بك بتغيير خصائص التحكم، أو استدعاء الأسلوب Microsoft.Office.Core.IRibbonUI.InvalidateControl. |
ButtonClick |
يحدث عند النقر علي زر في RibbonGallery أو RibbonDropDown. |
SelectionChanged |
يحدث عند تغيير التحديد في RibbonDropDown أو RibbonGallery. |
DialogLauncherClick |
يحدث عند النقر فوق أيقونة مشغل الحوار في الركن الأيمن السفلي من المجموعة. |
يكون لمعالجات الحدث لهذه الأحداث المعلمتين التاليتين.
المعلمة |
الوصف |
---|---|
sender |
Object الذي يمثل عنصر التحكم الذي رفع الحدث. |
e |
RibbonControlEventArgs الذي يحتوي على Microsoft.Office.Core.IRibbonControl. استخدم عنصر التحكم هذا للوصول لأي خاصية غير متوفرة في نموذج كائن الشريط الذي يوفره Visual Studio Tools لوقت تشغيل Office. |
راجع أيضًا:
المهام
كيفية القيام بما يلي: البدء في تخصيص الشريط
الإرشادات التفصيلية: إنشاء علامة تبويب مخصصة باستخدام مصمم الشريط
الإرشادات التفصيلية: تحديث عناصر التحكم على الشريط في وقت التشغيل
كيفية القيام بما يلي: تخصيص تبويب مضمن
كيفية القيام بما يلي: تخصيص قائمة Microsoft Office
كيفية القيام بما يلي: تصدير شريط من مصمم الشريط إلى XML خاص بالشريط
كيفية القيام بما يلي: إظهار أخطاء واجهة مستخدم الوظيفة الإضافية
المرجع
المبادئ
الوصول إلى الشريط في وقت التشغيل