PDA

View Full Version : سوال: ارسال فرمان form_load توسط فرم دوم



voice.of.silence
جمعه 13 اردیبهشت 1392, 16:10 عصر
سلام دوستان:
برنامه ی من دارای دو فرم هست ،
فرم اول کار خواند ، نوشتن و ویرایش داده ها را انجام می دهد و فرم دوم تنها وظیفه ی ورودی داده ها را انجام می دهد.
که خود فرم دومی هم از درون فرم اولی توسط دکمه ی ADD باز می شود.
حال می خوام که مرا در نوشتن کدی یاری کنید که در رویدات form_close فرم دوم نوشته می شود که توسط آن کد باید لیست باکس فرم اول reload شود تا داده های جدید را نمایش دهد.
نکته: لیستباکس فرم اول یا اصلی توسط یک method پر می شود.
خوشحال می شم اگه مرا در انجام این نوشتن این کد راهنامیی کنید.

با سپاس.
Voice of Silence

fool66
جمعه 13 اردیبهشت 1392, 16:13 عصر
از این استفاده کن

Form1_Load(null,null)

Rezahak
جمعه 13 اردیبهشت 1392, 16:50 عصر
اولا که هنگامیکه شما وارد فرم دوم می شوید باید یک instance از فرم اول یا listbox روی فرم اول با خود ببرید.
اگر متدی که لیست را به روی می کند داخل class فرم اول نوشته شده است، بک متغیر از نوع فرم اول داخل فرم دوم به صورت public تعریف کنید(یا یک property از نوع فرم اول)و هنگامیکه فرم دوم load می شود مقدار فرم اول را دز آن قراردهید. فرض کنید نام متد refreshlist() باشد و نام متغیر frm1 حالا هر وقت می خواهید لیست را از داخل فرم دوم به روز کنید باید بنویسید frm1.refreshlist()
به همین سادگی!!!!

مهرداد صفا
جمعه 13 اردیبهشت 1392, 20:17 عصر
سلام دوست خوبم:قلب:.
اینطور که متوجه شدم شما فرم اول را نمیبندید، در این صورت می توانید با استفاده از Application.OpenForms به فرم اول از فرم دوم دسترسی داشته باشید. پس اول فراموش نکنید که متود هندلر فرم اول را به صورت public تعریف کنید:

[VB]
public void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("form1 is loading");
}
[/CSHARP]

و فقط در هنگام بسته شدن فرم دوم:


private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
(Application.OpenForms["form1"] as Form1).Form1_Load(
Application.OpenForms["form1"], null);
}


ولی اگر این احتمال وجود دارد که بعد از نمایش فرم دوم فرم اول بسته شده باشد می توانید یک متغیر static از فرم اول در کلاس Program در فایل Program.cs به شکل زیر تعریف کنید:


private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Program.form1.Form1_Load(Program.form1, null);
Program.form1.Show();
}


اگر جایی مبهم بود بفرمایید توضیح بدهم.