تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كيف نستدعي صناديق الحوار الخاصة بمايكروسوفت وورد من برنامجنا
#1
كاتب الموضوع : samerselo

عندما تتعامل مع مايكروسوفت وورد تأتيك أوقات تحتاج لإظهار صناديق حوار للحصول على دخل من المستخدم. ورغم وجود إمكانية لإنشاء صناديق الحوار الخاصة بك إلا أنه يمكنك أيضا الاستفادة من صناديق الحوار الموجودة سلفا والتي يمكننا الوصول إليها من خلال المجموعة Dialogs في الغرض Application وهي أكثر من 200 صندوق حوار تم تقديمها على شكل تعدادات. فإذا أدرنا استدعاء صندوق حوار إنشاء مستند جديد على سبيل المثال يمكننا عمل ذلك بتمرير القيمة Word.WdWordDialog.wdDialogFileNew للدالة Application.Dialogs.Item كما في الكود التالي وللتجربة استخدم مشروعا من النوع Word 2007 Document

كود :
Dim dlg As Word.Dialog = _
Application.Dialogs.Item(Word.WdWordDialog.wdDialogFileNew)
dlg.Show()
وللوصول إلى عناصر صندوق الحوار نستخدم الطريقة InvokeMember لتحديد اسم الملف لصندوق حوار فتح ملف بالطريقة الظاهرة بالكود التالي حيث نحصل على النوع Type الخاص بصندوق الحوار الذي نستخدمه ثم نضبط قيمة الخاصية المطلوبة باستخدام الطريقة InvokeMember

كود :
Dim dlg As Word.Dialog = Application.Dialogs(Word.WdWordDialog.wdDialogFileOpen)
Dim dlgType As Type = GetType(Word.Dialog)

' Set the Name property of the dialog box.
dlgType.InvokeMember("Name", _
Reflection.BindingFlags.SetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, New Object() {"Testing"}, _
System.Globalization.CultureInfo.InvariantCulture)

dlg.Show()
كما يمكننا الحصول على قيمة أي خاصية لصندوق حوار خاص بمايكروسوفت وورد بنفس الطريقة تقريبا وذلك بتمرير القيمة GetProperty للطريقة InvokeMember بدلا عن القيمة SetProperty كما يرينا ذلك المثال التالي

كود :
' Show the Name property.
MessageBox.Show(dlgType.InvokeMember("Name", _
Reflection.BindingFlags.GetProperty Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance, _
Nothing, dlg, Nothing, _
System.Globalization.CultureInfo.InvariantCulture))
ويمكننا القيام ببعض الإجراءات المعقدة باستخدام صناديق الحوار المضمنة سلفا مع مايكروسوفت وورد باستخدام هذه الصناديق بدون إظهارها للمستخدم وذلك باستدعاء الطريقة Execute لصندوق الحوار بدون استدعاء الطريقة Display كما في المثال التالي الذي يتطلب استخدام الضبط Option Strict Off بسبب أن قيم الخصائص التي نتعامل معها هنا ليست عناصر ضمن الفئة Dialog أساسا وهي تستخدم الربط المتأخر حيث يتم إنشاؤها ديناميكيا في زمن التشغيل عندما يقوم المترجم بتقييم التعداد wdDialogFilePageSetup حيث يتم إنشاء هذه الخصائص لتكون مطابقة للتحكمات التي ستظهر على صندوق الحوار ومثالنا هنا يستخدم التعداد wdDialogFilePageSetup لضبط عدة خصائص للصفحة بدون طلب الإدخال من المستخدم حيث يستخدم الكود الغرض Dialog لضبط حجم مخصص للصفحة

كود :
Friend Sub PageSetupDialogHidden()
Dim dlg As Word.Dialog = _
Application.Dialogs.Item(Word.WdWordDialog.wdDialogFilePageSetup)

' Set the properties of the dialog box.
' ControlChars.Quote() is used to represent the symbol for inches.
With dlg
.PageWidth = 3.3 & ControlChars.Quote
.PageHeight = 6 & ControlChars.Quote
.TopMargin = 0.71 & ControlChars.Quote
.BottomMargin = 0.81 & ControlChars.Quote
.LeftMargin = 0.66 & ControlChars.Quote
.RightMargin = 0.66 & ControlChars.Quote
.HeaderDistance = 0.28 & ControlChars.Quote
.Orientation = Word.WdOrientation.wdOrientPortrait
.DifferentFirstPage = False
.FirstPage = 0
.OtherPages = 0

' Apply these settings only to the current selection with this line of code:
.ApplyPropsTo = 3

' Apply the settings.
.Execute()
End With
End Sub
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  طريقة جعل برنامجك زي وورد 2007 و2010 وأحسن بكتير -DotNetBar- RaggiTech 0 887 09-10-12, 06:14 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم