الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

للتحكم بالاحداث في Vb.net

بدأه ofnet في 13 أكتوبر 2009 · 3 رد · 707 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

كيف حالكم إن شاء الله دائمــاً بخير ؟

هل هناك امر آخر بخلاف الامر ? exit sub لايقاف حدث ما

حاولت استعمال exit handled و لم تفي بالغرض لان التعبير خاطئ

شكرا مسبقا و ارجوكم ساعدوني لأنني مستعجل

لا خيــــــــــر في كاتــــــــــم العلــــــــــم

سأل الممكن المستحيل ، قال أين تسكن ، فال أسكن في عقول العاجزين

#2

لحذف Handler لحدث استعمل RemoveHandler و لإضافة Handler لحدث استخدم AddHandler

اقتباس
هل هناك امر آخر بخلاف الامر ? exit sub لايقاف حدث ما

لم افهم سؤالك فى البدايه و لكن فهمته الأن، استخدم return.

ملحوظه : الحدث لا يتم انهائه لإنه تم استدعائه بالفعل من الأداه التى تحتوى عليه و انما الـ Handler الذى تكتبه انت هو الذى تستطيع انهائه فى اى وقت تشاء بإستخدام عدة طرق منها استخدام return.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#3

اولا شكرا اخي على المبادرة

في الحقيقة لم افهم كيفية استعمال removehandler

ساوضح لك

لدي الحدث button.click اود ان اوقف الكود عند سطر محدد طبعا يتوقف يشرط و لكن لا اريد استعمال الـ exit sub

اضن ان return تفي بالغرض

بارك الله فيك

لا خيــــــــــر في كاتــــــــــم العلــــــــــم

سأل الممكن المستحيل ، قال أين تسكن ، فال أسكن في عقول العاجزين

#4

السلام عليكم ورحمة الله وبركاته

الاخ الكريم Ofnet كما جاء الرد الجميل للأخ محمد علاء فالموضوع يحتمل اكثر من طريقة واكثر حل بحسب رغبتك التي تبدو لي مبهمة حتى الآن فبما ان Exit Sub ستنهيها مباشرة بحسب الشرط الذي تريد فما المانع من إستخدامها !! ... وعلى العموم فأن Return ستعمل نفس عملها !

على العموم دعنا لا نركز على هذا ونوضح الموضوع بشكل عام حتى تعم الفائدة لك و للآخرين بإذن الله تعالى ... الاحداث بشكل عام يمكن التحكم فيها سواءً قبل او بعد تفجيرها فمثلا :

Public Class Form1

	Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
		MsgBox("Clicked")
	End Sub

End Class

اذا نقرت الان على الفورم فأن المسج بوكس سيظهر ليبين لك حدث النقر .... ولكن اذا اضفت الكود التالي فلن يظهر :

Public Class Form1

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		RemoveHandler Me.Click, AddressOf Form1_Click
	End Sub

	Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
		MsgBox("Clicked")
	End Sub

End Class

بإضافة الكود السابق وكما اوضح لك الأخ محمد فإن الـ RemoveHandler هنا قامت بإلغاء سيطرة الـ Form1_Click على الحدث Click ... وبالتالي فإنك اذا نقرت على الفورم فلن يظهر لك مربع الحوار...

يمكن ايضا عمل ما سبق عن طريق استخدام الـ Overriding للأحداث ودالك عن طريق الطرق المحمية التي تبدأ بالكلمة On مثلا للتلاعب بالحدث MouseMove قوم بعمل Overides للطريقة OnMouseMove وكذلك للتلاعب بالحدث Click نتلاعب بالـ OnlClick كما في المثال التالي :

Public Class Form1

	Protected Overrides Sub OnClick(ByVal e As System.EventArgs)

	End Sub

	Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
		MsgBox("Clicked")
	End Sub

End Class

بوضع الطريقة OnClick فارغة فأن هذا يعني انك لا تريد تفعيل الحدث Click ومعناه انك اذا نقرت على الفورم فلن يحدث شيء رغم وجود كود في الحدث Click ولكن لن يتم استدعائه واذا اردت اعادة تفعيله اضف الأمر myBase.OnClick بالشكل التالي :

Public Class Form1

	Protected Overrides Sub OnClick(ByVal e As System.EventArgs)

			MyBase.OnClick(e)

	End Sub

	Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
		MsgBox("Clicked")
	End Sub

End Class

واخيرا لنفترض ان لديك CheckBox1 على الفورم وتريد عند النقر عليه لايتم تفعيل الحدث كليك وعند إلغاءه يعمل الحدث كليك ... فقم بالتالي :

Public Class Form1

	Protected Overrides Sub OnClick(ByVal e As System.EventArgs)

		If CheckBox1.Checked Then
			Me.Text = "Click is Disabled"
		Else
			Me.Text = "Click is Enabled"
			MyBase.OnClick(e)
		End If

	End Sub

	Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
		MsgBox("Clicked")
	End Sub

End Class

لن اطيل اكثر .... اتمنى ان يفيدك المثال المرفق وشكرا للأخ محمد علاء الذي قام بالتوضيح قبلي...

تحياتي

السلام عليكم و رحمة الله و بركاته

rtaEventsControl.zip

مواضيع برمجية تقنية جديدة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال خدمة الـ RSS في برامجنا ومواقعنا ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج للبحث في الملفات ومحتواياتها (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• فئة للتراسل بين برنامجين في جهاز واحد ! (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع برمجية تقنية قديمة

----------------------------------------------------------------------------------------------------------------------------------------------

• إستغلال رسائل البالونات Balloons في الوينذوز أكس بي(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• مقالة : لماذا يجب ان نعتني بشفرات برامجنا !؟- (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• لمطوري البرامج و مواقع الويب - برنامج تركيب ألوان - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : بسيط للتحكم بالنظام, عن طريق الريجستري - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• برنامج : لتقييد و منع تشغيل البرامج الاخرى - (VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• النوافذ المنبثقة و طريقة لإستغلالها في برامجنا -(VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• تقنية الإستدعاء الذاتي - (VB.NET , VB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• مصفوفات الأدوات Control Arrays افكار وتلميحات ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

• أفكار و تلميحات[ المعنى الحقيقي للـ True و False ] - أمثلة (VB.NETVB6.0)

----------------------------------------------------------------------------------------------------------------------------------------------

• دوال الـ APIs و مايقابلها في الدوت نت ! - (VB.NET)

----------------------------------------------------------------------------------------------------------------------------------------------

مواضيع مشابهة