• 0
samerselo

أحداث التطبيق Application Events

سؤال

هذا تكرار لموضوع قديم لي وبما أنني وضعته سابقا كمرفقات وقد فقد المرفق لسبب ما ومع أنني أعدت إرفاق الملف في موضوع آخر ولكن لأهمية الموضوع النسبية أرجو أن تتحملوا تكراري للموضوع راجيا المعذرة من الجميع - فيما يلي النص الكامل للموضوع المذكور

الشرح هنا خاص بـ Visual Basic 2005 و ينطبق أيضا على 2008

للوصول إليها:

من مستكشف الحل Solution Explorer انقر بالماوس اليميني على مشروعك ثم اختر Properties ثم من صفحة Application اضغط زر View Application Events فيتم نقلك لمحرر الكود حيث تتمكن من استخدام الحدث الذي تحتاج لمعالجته في تطبيقك من خصائص التطبيق كما هو ظاهر بالصورة

post-2354-1213449994_thumb.jpg

post-2354-1213450023_thumb.jpg

وفيما يلي تعريف بكل حدث على حدة

My.Application.Startup Event

حيث ينطلق هذا الحدث عند بداية التطبيق لتضع فيه الأوامر التي تريد تنفيذها عند بداية التطبيق فمثلا إذا أردت تغيير الثقافة الخاصة بالتطبيق إلى العربية – سورية نستخدم كودا شبيها بالتالي:

Private Sub MyApplication_Startup(ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) _
Handles Me.Startup

' تغيير الثقافة الخاصة بالتطبيق عند بداية التطبيق
' قبل إظهار أية نافذة
My.Application.ChangeCulture("Ar-Sy")

End Sub

و البارامتر e يشير إلى الفئة Class StartupEventArgs التي توفر معلومات حول بداية التطبيق ولها عدة خصائص مثل Cancel التي تقوم بإلغاء الحدث و CommandLine التي تمرر بارامترات سطر الأوامر للتطبيق command-line arguments كما يمكنك الحصول على بارامترات سطر الأوامر أيضا باستخدام الأمر My.Application.CommandLineArgs من أي مكان في التطبيق

My.Application.Shutdown Event

حيث ينطلق هذا ا الحدث عند نهاية التطبيق فيمكنك استخدامه لمعالجة الأمور التي تحتاجها قبل نهاية التطبيق مباشرة

مثال :

		Private Sub MyApplication_Shutdown(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles Me.Shutdown

My.Application.Log.WriteEntry("Application Shut Down.")

End Sub

My.Application.StartupNextInstance Event

حيث ينطلق هذا ا الحدث عندما تحاول تشغيل نسخة ثانية من التطبيق المفترض أن يكون وحيد التواجد single-instance application والتطبيق مفتوح فعليا

مثال:

Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs)_
Handles Me.StartupNextInstance

Dim inputArgument As String = "/input="
Dim inputName As String = ""
For Each s As String In e.CommandLine
If s.ToLower.StartsWith(inputArgument) Then
inputName = s.Remove(0, inputArgument.Length)
End If
Next
If inputName = "" Then
MsgBox("No input name")
Else
MsgBox("Input name: " & inputName)
End If
End Sub

حيث يشير البارامتر e للفئة StartupNextInstanceEventArgs التي تعيد معلومات حول تواجدات التطبيق Application Instancs حيث تحدد الخاصية BringToForeground فيما إذا كان يجب نقل التواجد الأول للتطبيق إلى الواجهة و الخاصية CommandLine تحدد بارامترات سطر الأوامر للتواجد الجديد للتطبيق

My.Application.UnhandledException Event

حيث ينطلق هذا ا الحدث عندما ينطلق استثناء Exception في تطبيقك لم تتم معالجته داخل التطبيق لتتمكن من إجراء معالجة لهذا الاستثناء

مثال:

Private Sub MyApplication_UnhandledException(ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) _
Handles Me.UnhandledException

My.Application.Log.WriteException(e.Exception, _
TraceEventType.Critical, "Unhandled Exception.")

End Sub

و البارامتر e يشير إلى الفئة UnhandledExceptionEventArgs التي تحوي معلومات حول الخطأ مثل الخاصية Exception التي تحوي معلومات عن الخطأ و الخاصية ExitApplication التي تحدد فيما إذا كان يجب إنهاء التطبيق فور نهاية الإجرائية

NetworkChange.NetworkAvailabilityChanged Event

ينطلق هذا الحدث عندما تحدث تغييرات حول توافر الشبكة

Private Sub MyApplication_NetworkAvailabilityChanged(ByVal sender As Object, _
ByVal e As Microsoft.VisualBasic.Devices.NetworkAvailableEventArgs) _
Handles Me.NetworkAvailabilityChanged

MsgBox(e.IsNetworkAvailable.ToString)

End Sub

حيث يشير البارامتر e للفئة NetworkAvailableEventArgs التي تمرر معلومات حول توافر الشبكة ولها خاصية مفيدة هي IsNetworkAvailable التي تعيد قيمة منطقية هل الشبكة متوافرة أم لا

أرجو أن يكون هذا الشرح على عجالة مفيدا للجميع في التعرف على Application Events حيث يمكنكم الحصول على التفاصيل حول كل حدث من هذه الأحداث في مكتبة MSDN المرفقة مع فيجول ستوديو

محمد سامر أبو سلو

خاص بمنتديات الفريق العربي للبرمجة

http://www.arabteam2000-forum.com

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

بارك الله فيك

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

هل هناك حدث أو طريقة لمعرفة توفر الإنترنت على مستوى APPLICATION?

وألف شكر على هذا الموضوع الأساسي والمهم ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أستاذي الفاضل محمد سامر أبو سلو

هذه المعلومات وإن كانت قديمة إلا أنها مفيدة جدا جدا على الأقل بالنسبة لي وقد جاءت في وقتها .

أملك الآن تطبيق يتألف من عدة نماذج وقد كنت بصدد إعداد دالة يتم استدعائها من أي نموذج يتم إغلاق البرنامج منه لأتأكد من إغلاق الملفات المفتوحة وإغلاق الاتصال بقاعدة البيانات ولاشك بأن هذا الحل ممل مع كثرة النماذج أما الآن فلا داعي لذلك :)

بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0
بارك الله فيك

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

هل هناك حدث أو طريقة لمعرفة توفر الإنترنت على مستوى APPLICATION?

وألف شكر على هذا الموضوع الأساسي والمهم ..

يوجد موضوعين قديمين كنا قد ناقشنا فيهم موضوع الاتصال بالانترنت حاول البحث عنهما كما أنصحك بالسؤال في قسم الشبكات ففي جميع الأحوال اتصال الانترنت يبقى أولا وآخرا اتصال شبكة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا على موضوعك القيم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .