PDA

View Full Version : ارسال event به UserContorol



zehs_sha
پنج شنبه 08 اردیبهشت 1384, 17:33 عصر
سلام دوستان
من یک UserContorol ساختم که دارای چند Combo است می خواهم هنگامی که User کلید Enter را بر روی شی Combo زد event UserContorol فعال شود
این کار را هم کرده ام اما افاقه نکرده است


private void comboBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
UserControl1_KeyPress(sender,e);
}

private void UserControl1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{

}


اما هنگامی که برنامه کامپایل می شود و در داخل برنامه دیگری فرا خوانی می شود هنگامی که Enter بر روی شی Combo زده می شود هیچ واکنشی نشان نمی دهد ؟

یاشار
پنج شنبه 08 اردیبهشت 1384, 19:14 عصر
event هر کلاسی رو فقط می‌شه از داخل همون کلاسی که event توش تعریف شده مستقیما صدا کرد. خارج از کلاس event ها باید بوسله یک eventhandler اداره بشن. خود eventhandler یک روتینه (شبیه همون چیزی که شما نوشتید ) که به عنوان پارامتر یه sender میگره و یک کلاس مشتق شده از کلاس EventArgs . و این eventhandler هم از طریق یک Delegate با کلاس ارتباط برقرار میکنه. بنابرایی برای استفاده از یک event باید یه کم به جنبه شی گرایی قضیه بیشتر تاکید کنید. بحث‌های زیر همه یه جورایی به هم مربوطن، اگر دنبالش بگردین حتما مثال‌های خوبی تو اینترنت پیدا میکنید:




raising an event
eventhandlers
eventargs
delegates
MSDN -> C#tutorials -> raising and handling events



حالا اگر همه این کارها رو توی کلاس کنترلتون انجام دادین و باز هم اتفاقی نمی‌افته باید دید delegate ها رو چطور تعریف کردین و ... که احتیاج به توضیحات بیشتر از جانب شما داره....