PDA

View Full Version : ()Call Event



RK977877
دوشنبه 15 دی 1393, 13:37 عصر
با سلام خدمت دوستان گرامی
چطوری میشه با استفاده از Event ها یک متد رو در یک فرم دیگر فراخوانی کرد

SabaSabouhi
دوشنبه 15 دی 1393, 14:53 عصر
سلام
این کار درستی نیست، اما شما می‌تونید یه متد public ایجاد کنید و توی event مورد نظرتون اون رو فراخوانی کنید.
و کارهایی که قراره این event انجام بده رو توی اون متد public انجام بدین.


public void MyClick(){
}
private void Button_Click( object sender, EventArgs e ){
MyClick();
}




به این شکل اون متد public از فرم‌های دیگه قابل دسترسی هست و مشکلی هم ایجاد نمی‌شه.
صبا صبوحی

RK977877
شنبه 20 دی 1393, 11:53 صبح
ببینید برای مثال تو یه برنامه MdiApplication اگه شما یه متد تو فرم اصلی داشته باشد و بخواید تو فرم Child که باز میشه اونو صدا بزیند به چه طریق عمل میکنید ؟

SabaSabouhi
شنبه 20 دی 1393, 14:55 عصر
سلام
فرم اصلی یک کلاس هست، اما چیزی که مشاهده می‌کنید یه شی‌ء هست.
می‌تونید به این شکل عمل کنید.


internal static class Program {
public MyMdiForm MyMdiForm { get; private set; }

public static void Main(){
MyMdiForm = new MyMdiform();
Application.Run( MyMdiForm );


.
.
.



حالا به راحتی تو هر فرم می‌تونید به صورت Program.MyMdiForm به متدهای غیر private فرم اصلی دسترسی داشته باشید.

صبا صبوحی

elec60
شنبه 20 دی 1393, 22:19 عصر
میتونید موقع نمونه سازی از فرم child یه object از فرم اصلی هم به سازنده child پاس بدین و به این شی و توابع غیر private اش دسترسی داشته باشین.
البته باید سازنده دیفالت فرم child رو تغییر بدین تا متغیر از تایپ فرم اصلی قبول کنه...