اريد ان انادي الحدث الموجود في زرار 2 في keydown من قلب زرار 1
اريد انادي حدث من قلب زرار عندي
السلام عليكــم ورحمـة الله وبركاتــه ،،
أخى الكريم ,, سؤالك مبهم وغير واضح ,, أتمنى أن توضحه قليلا
هل تقصد أنك تريد تنفيذ نفس الكود فى حدث الـKeyDown للزر الأول والثانى؟
وضح قليلا بارك الله فيك حتى تجد إجابة واضحة ,,
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
مشكور على الاهتمام
ويتضح ان المنتدى نشيط بوجودك
لا انا عايز لما اضغط على button1 يروح ينادي على الحدث الموجود في button2_keydown
كنا بنتكتبها في vb6
Private Sub Command2_Click()
Command1_Click
End Sub
Private Sub Button1_KeyDown (byval sender as object, byval e as KeyEventArgs) Button2_KeyDown(sender, e) End Sub
و الله ولى التوفيق
مدونتي: C++ Tips and Tricks
zintree كتب:مشكور على الاهتمامويتضح ان المنتدى نشيط بوجودك
لا انا عايز لما اضغط على button1 يروح ينادي على الحدث الموجود في button2_keydown
كنا بنتكتبها في vb6
Private Sub Command2_Click()
Command1_Click
End Sub
شكرا لك أخى الكريم ,, المنتدى نشيط بوجودكم فيه
كود الفيبى6 الذى وضعته ينادى على الحدث Click وليس KeyDown
إذا كنت تريد مناداة الحدث Click فقم باستدعاء الاجراء Button2.PerformClick
أما إن كنت تريد استدعاء حدث آخر للزر فكل ما عليك فعله هو استدعاء الاجراء المفوض للحدث المطلوب
مثلا ,, الكود التالى يقوم باستدعاء الاجراء المفوض للحدث KeyDown للزر الثانى عند الضغط على الزر الأول
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button2_KeyDown(Button2, New KeyEventArgs(Keys.None))
End Sub
Private Sub Button2_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Button2.KeyDown
MsgBox("Button2 KeyDown")
End Subإن لم يكن هذا طلبك فأخبرنى ,,
[تحرير]
أخ محمد علاء ,, يبدو أنك كتبت مشاركتك أثناء كتابتى لمشاركتى فلم أر مشاركتك إلا الآن
تم تعديل هذه المشاركة بواسطة GHOST2010 في 19 أغسطس 2009 في 19:16
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
اولا مرسي على ردك
ثانيا انا بنده على حاجه محتوى e فيها مش زي محتوى e في الداله اليي بنده منها
اقتباساولا مرسي على ردكثانيا انا بنده على حاجه محتوى e فيها مش زي محتوى e في الداله اليي بنده منها
بتكلمنى أنا والا محمد علاء؟؟!! :P
إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال
الاخ جوست
دا الكود اليي عايز اناديه
اعمل ايه بقى
Private Sub wndReportControl_ValueChanged(ByVal sender As Object, ByVal e As AxXtremeReportControl._DReportControlEvents_ValueChangedEvent) Handles wndReportControl.ValueChanged msgbox "ghost" end sub
يبدو انى كنت نايم وانا بكتب المشاركه رقم 4 لإن الإجابه مش هى اللى انت عايزها :wacko: ، المهم اجابة سؤالك اللى فى المشاركه رقم 8 الأخ ghost حلها لك بس يبدو انك مأخدتش بالك من الكود كويس
Button2_KeyDown(Button2, New KeyEventArgs(Keys.None))
بشكل عام الـ Handlers بتاعت الأحداث هى برضه دوال لكن ليها شكل معين و علشان تنادى على اى داله ليها معاملات لازم تبعت المعاملات دى، و زى ما انت اخدت بالك الأخ Ghost لما استدعى الداله Button2_KeyDown من داخل الداله Button1_Click ارسل المعامل الأول و هو Button1 اما بالنسبه للمعامل الثانى فهو لم يجد اى كائن متاح من الفئه KeyEventArgs علشان كده هو مرر كائن جديد و علشان الكائن ده بيحتاج معامل اثناء انشائه و ايضا علشان يتم تفادى ارسال بيانات خاطئه لـ Button2_KeyDown فتم انشاء النسخه KeyEventArgs بقيمه Keys.None و حيث انه لا وجود لذلك الزر فلن يحدث مشكله داخل Button2_KeyDown حيث انه من الطبيعى عندما يقوم الحدث KeyDown بتنشيط Button2_KeyDown سيرسل رقم الزر الذى تم ضغطه.
الهدف مما سبق هو انك تريد استدعاء Handler لحدث معين و هو wndReportControl.ValueChanged و حيث ان الـ Handler لهذا الحدث يطلب معاملين (شأنه شأن كل الاحداث فى الدوت نت) اولهما هو الكائن الذى استدعى الـ Handler و ثانيهما هو نسخه من _DReportControlEvents_ValueChangedEvent بالتالى يمكنك استدعاء هذا الـ Handler كالتالى
wndReportControl_ValueChanged(Nothing, Nothing)
و فى هذه الحاله اذا كان داخل هذا الـ Handler كود يستخدم معاملات الداله سيظهر رسالة خطأ لإننا قمنا بتمرير Nothing للمعاملات و لتفادى ذلك يمكنك ارسال الكائن الذى استدعى الـ Handler كمعامل اول اما المعامل الثانى فيمكنك ارسال Nothing او يمكنك ارسال نسخه جديده منه.
التالى هى الصور التى يمكنك استدعاء الداله بها حيث ان _obj_ هو الكائن الذى يستدعى الـ wndReportControl_ValueChanged
wndReportControl_ValueChanged(Nothing, Nothing) wndReportControl_ValueChanged(Me,Nothing) wndReportControl_ValueChanged(_obj_,Nothing) wndReportControl_ValueChanged(_obj_,New AxXtremeReportControl._DReportControlEvents_ValueChangedEvent()) wndReportControl_ValueChanged(Nothing,New AxXtremeReportControl._DReportControlEvents_ValueChangedEvent())
و الله ولى التوفيق
تم تعديل هذه المشاركة بواسطة Muhammad alaa في 19 أغسطس 2009 في 22:53
مدونتي: C++ Tips and Tricks