السلام عليكــم ورحمـة الله وبركاتــه ،،
كيف حالكم إن شاء الله دائمــاً بخير ؟
هل هناك امر آخر بخلاف الامر ? exit sub لايقاف حدث ما
حاولت استعمال exit handled و لم تفي بالغرض لان التعبير خاطئ
شكرا مسبقا و ارجوكم ساعدوني لأنني مستعجل
السلام عليكــم ورحمـة الله وبركاتــه ،،
كيف حالكم إن شاء الله دائمــاً بخير ؟
هل هناك امر آخر بخلاف الامر ? exit sub لايقاف حدث ما
حاولت استعمال exit handled و لم تفي بالغرض لان التعبير خاطئ
شكرا مسبقا و ارجوكم ساعدوني لأنني مستعجل
لا خيــــــــــر في كاتــــــــــم العلــــــــــم
سأل الممكن المستحيل ، قال أين تسكن ، فال أسكن في عقول العاجزين
لحذف Handler لحدث استعمل RemoveHandler و لإضافة Handler لحدث استخدم AddHandler
اقتباسهل هناك امر آخر بخلاف الامر ? exit sub لايقاف حدث ما
لم افهم سؤالك فى البدايه و لكن فهمته الأن، استخدم return.
ملحوظه : الحدث لا يتم انهائه لإنه تم استدعائه بالفعل من الأداه التى تحتوى عليه و انما الـ Handler الذى تكتبه انت هو الذى تستطيع انهائه فى اى وقت تشاء بإستخدام عدة طرق منها استخدام return.
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
اولا شكرا اخي على المبادرة
في الحقيقة لم افهم كيفية استعمال removehandler
ساوضح لك
لدي الحدث button.click اود ان اوقف الكود عند سطر محدد طبعا يتوقف يشرط و لكن لا اريد استعمال الـ exit sub
اضن ان return تفي بالغرض
بارك الله فيك
لا خيــــــــــر في كاتــــــــــم العلــــــــــم
سأل الممكن المستحيل ، قال أين تسكن ، فال أسكن في عقول العاجزين
السلام عليكم ورحمة الله وبركاته
الاخ الكريم 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لن اطيل اكثر .... اتمنى ان يفيدك المثال المرفق وشكرا للأخ محمد علاء الذي قام بالتوضيح قبلي...
تحياتي
السلام عليكم و رحمة الله و بركاته
مواضيع برمجية تقنية جديدة
----------------------------------------------------------------------------------------------------------------------------------------------
• إستغلال خدمة الـ 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)
----------------------------------------------------------------------------------------------------------------------------------------------