PDA

View Full Version : سوال: صدا کردن یک متد فرم پدر توسط UserControl



morika
دوشنبه 26 بهمن 1394, 14:03 عصر
سلام
یه userControl نوشتم که توی تمام کاراشو توی متد keyPress انجام میده. و یه جایی باید نتیجه کارشو به شکل یه string برگردونه که فرم پدر با اون string کار کنه. از اونجایی که نمی دونم این userControl قرار رو چه فرمی قرار بگیره یا قراره اسم متدی که می خواد با اون string کار کنه چیه پس باید یه راهی درست کنم که کاربر بتونه متد مورد نظرش رو که در فرمش هست به این UserControl معرفی کنه. مثلا بشه مثل این property تو usercontrol تعریف کرد که کاربر اون property رو برابر متد خودش قرار بده که usercontrol بعداز کارایی که انجام میده اون string رو به متد مورد نظر بفرسته و متد رو صدا بزنه. اما چجوزی میشه همچین کاری کرد؟
ممنون

sds1920
دوشنبه 26 بهمن 1394, 14:57 عصر
به جای اینکه دنبال فرخوانی متد والد از طریق فرزند باشید، به دنبال تعریف یک event درون فرزند باشید.
شما درون UserControl یک event ایجاد کن و توی فرم والد اون event رو براش یه متد بنویس.
اینجوری اصولی تر هست.
تعریف event

public event delegate_name event_name;

فراخوانی event درون کنترل

if(event_name!=null)
event_name(send parameters...);