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

كيف أقوم بالغاء حدث عند حدوث حدث آخر ؟!

مغلق
بدأه rekhtar في 14 نوفمبر 2006 · 5 رد · 689 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هذه اول مشاركة لي معكم واتمنى اني القى الجواب الشافي عند اساتذتنا

الان اخواني انا عندي combobox و textbox

في حدث combobox1_SelectedValueChanged

يقوم البرنامج باظهار الكود الخاص بالعنصر في الـ textbox

وفي حدث Textbox1_TextChanged

يقوم البرنامج باظهار العنصر في الـ Combobox بدلالة الكود المكتوب في الـ Textbox

الان اريد التالي :

حينما يتم تشغيل الحدث combobox1_SelectedValueChanged ، يتوقف الحدث Textbox1_TextChanged

والعكس أيضا

كيف اخواني بارك الله فيكم ألغي حدوث حدث عند حدوث الآخر ؟؟

=======================

تم حذف السؤال الثاني - يرجى عدم وضع أكثر من سؤال في الموضوع وقراءة قواعد المشاركة -

تم تعديل هذه المشاركة بواسطة samerselo في 14 نوفمبر 2006 في 21:41

#2

أبسط حل استخدم متغير من النوع boolean تختبر قيمته قبل تنفيذ الحدث وتنفذ التعليمات البرمجية ضمن إجراء الحدث بناء على قيمته

عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه

نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا

ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا

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

#3

السلام عليكم

تستطيع عبر اضافة و ازالة الاحداث AddHandler and removeHandler شاهد المثال التالي:

Private Sub Form1_Load( _
	ByVal sender As System.Object, _
	ByVal e As System.EventArgs) Handles MyBase.Load
		'اضافة حدث
		AddHandler cb.SelectedValueChanged, _
		 AddressOf SelValueChanged
	End Sub


	Sub SelValueChanged(ByVal sender As Object, _
	ByVal e As System.EventArgs) Handles cb.SelectedValueChanged
		'do something.
	End Sub


	Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
		'ازالة الحدث
		RemoveHandler cb.SelectedValueChanged, _
		 AddressOf SelValueChanged
	End Sub

بالتوفيق إن شاء الله.

في المثال يتضح المقال

#4

شكرا لك اخي سامري على الفكرة

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

RemoveHandler cb.SelectedValueChanged, _

AddressOf SelValueChanged

في حدث textchanged

هل اكتب بعد هذين السطرين بقية الكود الخاص بالحدث ؟

#5

السلام عليكم

الجمل التعبيرية البرمجية statements لا يصلح لها مكان غير الامكنة التي يتوفر فيها بدء و انها المحيط block

بمعنى اخر الاماكن الملائمة لها هي كالتالي : الاحداث Events و الاجراءت subs و الوظائف functions و الخصائص properties

و غير ذلك مما ينطبق عليه الشرط ,

اما تعريف المتغيرات مثلاً لا يصلح في هذه الاماكن إن لم تكن محلية وتعرف بالمعرف Dim

وهو ما يعرف بمحيط الوصول للمتغير , على سبيل المثال : تعريف المتغير بأنه محلي Private في الاماكن المذكورة تعريف غير مقبول أطلاقاً

بينما يقبل في خارج الفضاء لتلك المناطق البرمجية كتعريفة في أول صفحة الكود..

وبما أن الAddHandler و RemoveHandler جمل تعبيرية , فالامر ينطبق عليهما.

السؤال الثاني غير واضح , لكن بشكل عام التعبيران المذكوران يأخذنا نفس الكم و الكيف في عملية الاضافة او الازالة سواءً بسواء.

والله اعلم.

في المثال يتضح المقال

#6

اشكرك اخي الغملاسي وانت قد تفضلت بالاجابة على كلا السؤالين

شاكر لك سعة صدرك

هذا الموضوع مغلق.

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