PDA

View Full Version : فراخوانی تابع از فرم های دیگر



samiasoft
شنبه 23 دی 1396, 17:00 عصر
سلام دوستان

میدونیم که اگر تابع ما در داخل یک کلاس باشد برای فراخوانی ان تابع رو باید استاتیک کنیم

اما وقتی تابع داخل فرم هستش چطوری اونو فراخوانی کنیم؟

برای مثال این دستورات داخل فرم 1 هست :

public void Reset_Items() {

txt_Family.ResetText();
txt_Mobile.ResetText();
txt_Name.ResetText();

}



حال اگر بخواهیم از فرم 2 این تابع را فراخوانی کنیم باید به چه صورت عمل کنیم؟

parvizwpf
شنبه 23 دی 1396, 18:59 عصر
با مباحث Event ها هم میتونید انجام بدید
https://stackoverflow.com/questions/12890754/call-a-method-from-another-form

ramtinak
شنبه 23 دی 1396, 23:05 عصر
سلام،
ساده ترین کار اینه که یک شی استاتیک از خود فرم درون فرم بسازید و در constructor اون رو برابر با this(فرمتون) قرار بدید!


مثلا فرض کنید فرمی به اسم MainForm داریم، بالای کنستراکتور فرم(public MainForm...) بنویسید:

public static MainForm Current;


حالا داخل کنستراکتور فرم بعد از کد Initialize... بنویسید:
Current = this;

الان از هر جایی می تونید متدی که به صورت public کردید رو فرا بخونید:

MainForm.Current.Reset_Items();

اما یادتون باشه، همیشه مقدارش رو چک کنید تا اگه این object برابر با null بود برنامه باگ نده!

if(MainForm.Current != null)
{
MainForm.Current.Reset_Items();
}


موفق باشید.