PDA

View Full Version : آموزش: انتقال اطلاعات بین 2 فرم



vaheeed
یک شنبه 17 دی 1391, 13:46 عصر
انتقال اطلاعات بین 2 فرم بدون اینکه نمونه جدیدی ازش نشون بدیم معمولا مشکل اینه که باید یک نمونه جدید ساخت و نمایشش داد تا تغییرات اعمال بشه ولی اینجوری در همون لحظه اطلاعات جابجا میشه !
2 تا فرم داریم : فرم 1 و فرم 2
داخل فرم 1 ، نمونه ای از فرم 2 میسازیم و همینطور در فرم 2 نمونه ای از فرم 1 رو میسازیم .
Form2 frm2=new Form2();
public Form1 frm1;
در فرم 1 به نمونه ای که از فرم 2 ساختیم اشاره میکنیم و بعد به نمونه ای که از فرم 1 ساختیم یعنی :
frm2.frm1=this; و این نمونه رو برابر this قرار میدیم اینجوری میگیم فرم 2 که نمایش داد یه نمونه از فرم 1 داخلش داریم که برابر همین فرمی هست که ازش فراخونی شده .
حالا فرم 2 رو نمایش میدیم و با نمونه frm1 به متغییر های عمومی فرم 1 دسترسی داریم .
فقط توجه داشته باشین که نمونه ای که از فرم 1 ساخته شد عمومی بود و هر متغییری که بخواید در فرم 1 تغیر پیدا کنه باید عمومی باشه .
برای عمومی کردن یک لیبل و یا ... باید به فایل کد طراحی برید و private اون متغیر را به public تغییر بدید البته میتونید در قسمت properties متغیر هم مراجعه و خاصیت modifiers رو برابر public قرار بدید .
میدونم اولش گیج میشید ولی نمونه کد رو ببینید حل میشه .
اگه اساتید مشکلی میبینند اصلاح بفرمایند با تشکر.
با تشکر از دوست خوبم azgn32
اینم یه نمونه برنامه :

mohamadreza#
یک شنبه 17 دی 1391, 14:04 عصر
از این لینک ها احتمالا جوابتو میگیری:
http://www.codeproject.com/Articles/14122/Passing-Data-Between-Forms

http://www.codeproject.com/Articles/17371/Passing-Data-between-Windows-Forms

harani
یک شنبه 17 دی 1391, 14:11 عصر
اگه فرم 1ت ران باشه میتونی از کد زیر (بدون ساختن شی ء جدید از آن) اطلاعات را مبادله کنید .مثلاً میخوای تو تکست باکس فرم دومت هرچی که تو تکست باکس فرم اولت نوشته بود ثبت میشه میتونی از کد زیر کمک بگیری
البته باید تکست باکس فرم اولت modifre ش public باشه .

َtextBox1.Text = ((Form1)Application.OpenForms["Form1"]).textBox1.Text