سادسا
ديالوج الطباعة
1-ديالوج إعداد الصفحة قبل الطباعة
قم بإدراج زر Button و PageSetupDialog
الكود
قم بالضغط على الفورم واكتب السطر التالى فى السطر الأول وقبل Declearation و Declearation هنا التى هى Public Class يعنى فى General
كود:
Imports System.Drawing.Printing
فى الزر Button قم بكتابة التالى
كود:
PageSetupDialog1.Document = New PrintDocument
If PageSetupDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
End If
.................................................. ..............................................
2- ديالوج الطباعة Print Dialog
قم بإدراج زر Button و PrintDialog و PrintDocument
الكود
قم بالضغط على الفورم واكتب السطر التالى فى السطر الأول وقبل Declearation
كود:
Imports System.Drawing.Printing
على الزر Button
كود:
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintDocument1.Print()
End If
.................................................. ..............................................
3-ديالوج معاينة الصفحة قبل الطباعة Print Privew
قم بإدراج زر Button و PrintPreviewDialog
قم بكتابة هذا الكود فى Button
كود:
If PrintPreviewDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PrintPreviewDialog1.Document.Print()
End If
***
سابعا
Namespace System.Diagnostics(للقراءة)
إن مجموعة Namespace System.Diagnostics تقوم بتوفير الفئات Class التى تسمح بالتعامل مع عمليات النظام و عرض الأحداث ومقاييس الكفاءة داخل النظام وأنواع الفئات Class التى يوفرها
كالتالى
1-(System.Diagnostics.Event Log)
وهى توفر فئات Class التعامل مع الأحداث الخاصة بالنظام وقراءة مداخل الحدث وإنشاء وحذف سجلات الأحداث الخاصة بالنظام بالإضافة لمصادر الأحداث على الشبكة
وهى كالتالى
- سجلات الحدث Event Log
وهى التى تعطى إمكانية التفاعل مع سجلات أحداث الويندوز Windows Event Logs ولكن
ما هى سجلات أحداث الويندوز Windows Event Logs؟
.................................................. .................................................. .................................................. ...................
توضيح حول سجلات الأحداث
هى بيانات الحدث والحدث Event هى كلمة مشتقة من الحدوث وهو هنا يقصد بة كل ما قد حدث بالفعل أو ما هو قابل للحدوث من الأحداث مثل تشغيل برنامج معين أو إغلاقة والحالة التى كان عليها عند بدء التشغيل وكذلك
الإغلاق وما حدث فى الفترة بين البداء وإنهاء النشغيل مصحوبا بزمن الحدوث التى وقع فية الحدث إلى اخر الأمور المتعلقة بالحدث من أخطاء وما شابة وهى مقسمة كالتالى طبقا للنوع
1-تطبيقات Application
2-أمان Security
3-تثبيت Setup
4-النظام System
5- الأحداث المتقدمة Forwarded Events
ويمكن تقسيمها أيضا طبقا لطبيعة حدوثها كالتالى
1-أخطاء Error
2-تحذيرات Warning
3-معلومات Informations
4-تحكم ناجح Audit Success
5-تحكم فاشل Audit Failure
ويمكن إيجاد سجلات الأحداث من خلال تشغيل Event Viewr عارض الأحداث من خلال الذهاب إلى تشغيل Run فى قائمة إبداء وكتابة eventvwr كما يمكنك إيجاد الملفات التى تحوى سجلات الحدث فى
المسار التالى
كود:
%SystemRoot%\System32\Winevt\Log\
................
-مدخل السجل الفردى EventLogEntry
وهو المسئول عن إدخال وكتابة حدث واحد مفرد وهو فئة Class غير قابل للتوارث أى أنة غير قادر على تكرار نفسة
-مدخل السجلات المتعددة EventLogEntryCollection
وظيفتة تجميع عدد من السجلات الفردية وتحديد أعداد السجلات المسموح بها وكذلك أحجامها
-مثبت سجلات الحدث EventLogInstaller
وهو المسئول عن توزيع وتثبيت سجل الحدث للتطبيق المطلوب
-تصريح الوصول إلى سجلات الحدث EventLogPermission
وهو المسئول عن السماح والمنع للوصول إلى الكود عن طريق إعطاء أو عدم إعطاء تصاريح بذلك
-مفسر التصريح بالحدث EventLogPermissionAttribute
وهو المسئول عن تفسير وتوضيح الترخيص بسجل الحدث
-مدخل التصريح الفردى للوصول إلى سجلات الحدث EventLogPermissionEntry
-مدخل مجموعة التصريحات المجمعة إلى سجلات الحدثEventLogPermissionEntryCollection
-متتبع الحدث EventLogTraceListener
وهو المسئول عن تتبع مسار الحدث
2-(System.Diagnostics.Process)
وهى المسئولة عن توفير الفئات Class التى تقوم بإدارة ومراقبة العمليات Process داخل النظام وكذلك العمليات التى تحدث خلال الشبكة ومعرفة حالة العمليات كما أنها أيضا تقوم بتنظيم العمليات عن طريق تسمية كل عملية ووضع ID رقم تعريفى لكل عملية وكذلك عرض العمليات التى تقوم باستخدام المعالج ....الخ
ويوجد بعض أنواع الفئات Classالمتعلقة ب System.Diagnostics.Process ومنها
-العمليات Process
وهى المسئولة عن بداء وإيقاف عملية ما سواء كان هذا على الجهاز المحلى أو كمبيوتر أخر على شبكة الإتصال
-وحدة العمليات Process Module
وهى تقوم بتوضيح وعرض الملفات التى تستخدم العملية مثل ملفات DLL أوexe ..الخ
-وحدة تجميع العمليات Process Module Collection
وهى التى تقوم بتجميع كل مجموعة من Process Module وتوجبهها إلى الغرض التى تعمل من أجلة
-بيانات بداء العملية Process Start Info
وهى المسئولة عن ظبط القيم المستخدمة عند بداء عملية ما
-مسار العملية Process Thread
وهى التى تتحكم وتحدد مسار العملية داخل النظام
-مجمع مسار العمليات Process Thread Collection
وهى التى تحدد مسار مجمل العمليات داخل النظام
3-(System.Diagnostics.Performance Counter)
إن هذة الفئات Class تمكن من متابعة الكفاءة الخاصة بالنظام كما تمكن من تخصيص إطار خاص للتحكم بكفاءة النظام
4-(System.Diagnostics.Debug)
وهى توفر الفئات Class التى يمكنها تتبع الخطاء ومصدرة وهى تقوم بتنفيذ هذة المهمة كالتالى
-التأكد Assert
ويتم فى هذة المرحلة زيادة الحمل على العملية وفحص الحالة والتأكد إذا ما كان الخطاء كاذب
- Write/WriteLine
يتم تتبع مسار الخطاء وكتابة المعلومات عنة
- WriteIf/ WriteLineIf
يتم كتابة تقرير الخطاء وعرض رسالة الخطاء إذا تبين أن الخطاء خطاء حقيقى
5-(System.Diagnostics.Trac)
توفر هذة المجموعة من الفئات أدوت تتبع مسارات العمليات والأحداث ومعرفة خصائصها
***
ثامنا
فكرة سريعة عن الفئات Classes (للقراءة)
Notes about Classes In VS.Net
هو المكونات الذى تستخدمها فى الفورم والديالوج والزر وكل مكونات الفيجوال ستوديو عبارة عن Class وهذة Class يقوم Dotnet FrameWork بإمداد الفيجوال استوديو بها
وللفئة (Class) وجهين كوجهى العملة
الوجة الأول :وهو الصورة النصية بمعنى أنك تتعامل معة على أنة كود وهذا التعامل تعامل مطاط فطالما هو فى صورة كود فيمكنك تعديلة وتغيير خصائصة
الوجة الاخر :Namespace وهو نظام تقسيمى تم على أساسة تصنيف الفئات(Classes) طبقا لوظيفتها و Namespace هى التى تكون الفجوال ستوديو دوت نت والفئات فى Namespace تكون ناضجة وجاهزة للعمل تقريبا ولكن بعد توجيهها إلى العمل وتخصيص الإحداثيات النهائية لها ويتم ذلك إما عن طريق تغيير خصائصها من Properties صفحة الخصائص أو عن طريق كتابة كود أو الإثنين معا أو بدون ذلك مثل TextBox حيث أنك تستطيع تحديد وظيفتة دون المساس بة أو تغيير أى من خصائصة والتحكم بة من خلال زر ويتم تقسيم Namespace إلى
1-System.Collection
2-System.Diagnostics
3-System.Data
4-System.IO
5-System.Math
6-System.Reflection
7-System.Security
إذن الفئات Classes
هى جزء من أجزاء البرنامج الذى تقوم بإنشاءة والبرنامج هو مجموعة Classes وكل Class يحتوى على خصائص الجزء الذى يمثلة وقد تكون هذة الخاصية شكل أو سلوك أو وظيفة ومجموع الفئات Class هى التى تعطى فى النهاية المشروع الذى سيصبح برنامجا فيما بعد وليس من الضرورى أن يكون Class شىء نراة فى صورة مادية مثل الموجودة فى ToolBox فمن الممكن أن يكون سطرا من الأوامروالفئات Classes مخزنة داخل الدوت نت بلغة تسمى Microsoft Intermediate Languageويمكن إختصارها إلى MSLI أى اللغة الوسيطة وهى وسيطة لأن أى لغة من لغات الفيجوال ستوديو تستطيع فهمها والتعامل معها بدون عامل وسيط VB.Net أو C++.Net….الخ وعلى ذلك فأيا كانت اللغة الذى تعمل من خلالها فإنة يمكنك إستدعاء أحد الفئات Classes الموجودة فى Primary Microsoft Dotnet Framwork Components وبعد أن تنتهى من العمل فإنة تحويل نواتج العمل مرة أخرى إلى اللغة الوسيطة (MSLI)وذلك عن طريق Common Language Runtime وتختصر إلى CLR
سؤال :هل يمكن إنشاء أو استحداث فئة Class غير متوفرة فى مكونات فيجوال ستوديو
إجابة:نعم
سؤال: كيف هذا
إجابة:هكذا
-قم بفتح الفيجوال ستوديو ثم من قائمة File اختر New Project
-قم باختيار Class Liberary
نفترض أننا نريد عمل Class للوحة دخول تحتوى على
UserName و password وUserID
نقوم بإعادة تسمية Class1 ونسمية Login
-نقوم أولا بالإعلان عن المتغيرات الثلاثة
كود:
Private _UserID As Integer
Private _UserName As String
Private _password As String
ثم تحديد بعض الخصائص
-تحديد خصائص UserID
كود:
Public ReadOnly Property UserID() As Integer
Get
Return _empID
End Get
End Property
-تحديد خصائص UserName
كود:
Public Property UserName()
Get
Return _UserName
End Get
Set(ByVal Value)
_UserName = Value
End Set
End Property
-تحديد خصائص password
كود:
Public Property Password() As String
Get
Return _password
End Get
Set(ByVal Value As String)
If Len(Value) >= 6 then
_password = Value
Else
Throw New Exception _
("Password must be at least 6 characters.")
End If
End Set
End Property
هذة فكرة سريعة عن Class
***
تاسعا
التعامل مع القوائم(مهم)
-مشروع جديد
-قم بإدراج MenuStrip من خلال Menus&Toolbars
-قم بالضغط على MenuStrip بالماوس يظهر لك مربع صغير فى أقصى النافذة مكتوب عليةType Here
سنقوم الان بإنشاء أول قائمة منسدلة وهى قائمة Fileملف
القائمة الأولى ملف File
-فى المربع الفارغ الذى يظهر لك الان قم بكتابة اسم للقائمة وهو ملف
-ظهر لنا الان MenuStrip فرعى منسدل من القائمة ملف
سنقوم الان بتحديد البنود التى نريد وضعها من خلال هذة القائمة المنسدلة
-كليك يمين بالماوس على القائمة ملف التى قمنا بإنشاءها الان ومن القائمة التى تظهر قم باختيار Edit DropDown Item
-تظهر لنا الان نافذة جديدة سنقوم الان بإضافة MenuItm جديد عن طريق الضغط على Add ثم بعد ذلك سنقوم بالضغط على Dropper لتظهر قائمة بالمكونات كما هو موضح
ثم نقوم بإضافة فاصل Separator وذلك عن طريق الضغط على Dropper ثم اختيار Separator ثم Add
-نقوم الان بإضافة عدد 3 MenuItm ثم Separator ثم عدد 3 MenuItm ثم Separator ثم MenuItm واحد على الترتيب
-لدينا الان عدد 8 عناصر فى القائمة المنسدلة سنقوم الان بتسميتها كالتالى
-قم بعمل كليك على ToolStripMenuItem تظهر لك خصائصة فى النافذة التى على اليمين
-إذهب إلى Text وقم بتغيير الإسم
من ToolStripMenuItem1 إلى جديد
من ToolStripMenuItem2 إلى فتح
من ToolStripMenuItem3 إلى حفظ
من ToolStripMenuItem4 إلى حفظ باسم
من ToolStripMenuItem5 إلى إعداد الصفحة
من ToolStripMenuItem6 إلى معاينة
من ToolStripMenuItem7 إلى طباعة
من ToolStripMenuItem8 إلى إنهاء
يمكننا الان إضافة مزيد من الأشياء مثل وضع أيكونة أو صورة لبعض العناصر
-كليك يمين على ملف ثم Edit DropDown Item قم باختيار أحد العناصر وليكن ToolStripMenuItem1 ثم اذهب إلى الخصائص ثم اذهب إلى Image وقم بالضغط على علامة المستعرض ثم Local Resource ثم Import وقم باختيار صورة مناسبة ولتكن بمقاس 16X16
الان انتهينا من ملف نعود الان إلى الواجهة الرئيسية ثم نقوم بإنشاء القائمة الثانية
القائمة الثانية تحرير Edit
-قم بإنشاء قائمة جديدة بالضغط على المربع Type Here الموجود بجانب ملف وقم بتسميتة تحرير
-نقوم بإدراج عدد 2 ToolStripMenuItem ثم Separator ثم عدد 2 ToolStripMenuItem ثم Separator ثم عدد1 ToolStripMenuItem ثم Separator ثم عدد 3 ToolStripMenuItem ثم Separator ثم واحد ToolStripMenuItem بنفس الطريقة المتبعة فى قائمة ملف ثم نقوم بتسميتها كالتالى
-فى نافذة الخصائص إذهب إلى Text وقم بتغيير الإسم
من ToolStripMenuItem9 إلى تراجع
من ToolStripMenuItem10 إلى إعادة
من ToolStripMenuItem11 إلى بحث
من ToolStripMenuItem12 إلى بحث واستبدال
من ToolStripMenuItem13 إلى تحديد الكل
من ToolStripMenuItem14 إلى نسخ
من ToolStripMenuItem15 إلى قص
من ToolStripMenuItem16 إلى لصق
من ToolStripMenuItem17 إلى إدراج صورة
القائمة الثالثة الخطوط والألوان
-قم بإنشاء قائمة جديدة بالضغط على المربع Type Here الموجود بجانب تحرير وقم بتسميتة الخطوط والألوان
نقوم بإدراج عدد 1 ToolStripMenuItem ثم Separator ثم ToolStripMenuItem ثم Separator ثم 4 ToolStripMenuItem ثم Separator ثم ToolStripMenuItem ثم Separator
قم بتسميتها على الترتيب التالى (نوع الخط-لون الخط-غامق-مائل-خط سفلى-عادى-لون خلفية الصفحة)
القائمة الرابعة تنسيق الفقرة
سنقوم بإدراج عدد 2 ToolStripMenuItem ونقوم بتسميتهما( مسافة بادئة –محاذاة) على الترتيب
-نقوم بعمل قائمة فرعية على قائمة مسافة بادئة وتحتوى على 5 عناصر (بدون-بمقدار5-بمقدار10-بمقدار15-بمقدار20) على الترتيب ويمكن ذلك مباشرة عن طريق الخصائص ثم الذهاب إلى DropDownItem ثم الضغط على Collection
-نقوم بعمل قائمة فرعية على العنصر محاذاة تحتوى على 3 عناصر(محاذاة إلى اليسار-توسيط-محاذاة إلى اليمين)
القائمة الخامسة تعداد نقطى
وتحتوى على عنصرين فقط وهما (إضافة-إزالة)
أرصعو هنا يالذيابه
و بهذا أنتها درس هذا اليوم و يتبع,,,,,,,,.................
تحياتي لصبيان قحطان وين ما كانو