PDA

View Full Version : انتقال آرایه بین دو فرم



hnosen
چهارشنبه 15 دی 1389, 10:53 صبح
با سلام
اگر بخوام یک آرایه را بین دو فرم جابجا کنم باید چکار کنم؟
ضمنا آرایه را هم بصورت Public تعریف کردم ودر فرم دیگر یک شی از این فرم ساختم و به این آرایه دسترسی پیدا کردم ولی داده در آن وجود نداشت.
لطفا راهنمایی کنید؟

abbas.oveissi
چهارشنبه 15 دی 1389, 22:03 عصر
با سلام
اگر بخوام یک آرایه را بین دو فرم جابجا کنم باید چکار کنم؟
ضمنا آرایه را هم بصورت Public تعریف کردم ودر فرم دیگر یک شی از این فرم ساختم و به این آرایه دسترسی پیدا کردم ولی داده در آن وجود نداشت.
لطفا راهنمایی کنید؟

آرایه رو static تعریف کن،مشکلت حل میشه فکر کنم .

hossin.esm
چهارشنبه 15 دی 1389, 22:23 عصر
دوست عزیز من جواب شما را در تاپیک قبلی که ایجاد کرده بودید دادم http://barnamenevis.org/showthread.php?268593 ولی خوب


Form2 Form2 = (Form2)Application.OpenForms["form2"];
Form2.ArrayList

Hossenbor
چهارشنبه 15 دی 1389, 22:29 عصر
مثل اینکه دوستمون قبلا توضیح دادند شما متوجه نشدید خوب الگوریتمشو بگو تا برنامه رو برات بگم

mmd2009
پنج شنبه 16 دی 1389, 17:25 عصر
با سلام

این سوال رو اینجا (http://barnamenevis.org/showthread.php?268593-%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%DB%8C%DA%A9-ArrayList-%D8%A7%D8%B2-%DB%8C%DA%A9-%D9%81%D8%B1%D9%85-%D8%A8%D9%87-%D9%81%D8%B1%D9%85-%D8%AF%DB%8C%DA%AF%D8%B1)هم پرسیدید که واسه همین من همین جا جوابتون رو میدم.

اول اینکه چرا ArrayList ؟ ما وقتی میتونیم از جنریک استفاده بکنیم نیازی دیگه به ArrayList نداریم.( طبق توصیه مایکروسافت)

دوم اینکه چرا استاتیک ؟؟؟ اصلا نیازی به این ار هم نیست.

خب حالا بریم سراغ حداقل اصولی ترین راه ممکن اونم استفاده از پراپریتی هست.

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

خب ما به فرم 2 میریم و یک پراپرتی به صورت زیر براش ایجاد می کنیم.



public List<int> Number4Listbox { get; set; }


توجه کنید که تمام کدهای زیر در یک دکمه از فرم 1 نوشته شده.

ابتدا ارایه خودمون رو ایجاد میکنیم ( جنریک) مانند زیر :



List<int> number = new List<int>();

for (int i = 0; i <= 9; i++)
{
number.Add(i);
}

Form2 f2 = new Form2();

f2.Number4Listbox = number;

f2.ShowDialog();



خب دیدی بعد از مقدار دهی اونا با پراپرتی فرم 2 ست کردیم و بعدش هم فرم رو باز کردیم.

حالا تو رویداد form2_load مثلا کد زیر رو مینویسم که تو لیست باکس مقادیر این ارایه جنریک قرار بگیرن :



foreach (int a in Number4Listbox)
{
listBox1.Items.Add(a.ToString());
}


امیدوارم مفید بوده باشه.

hossin.esm
پنج شنبه 16 دی 1389, 17:37 عصر
دوست عزیز mmd2009 (http://barnamenevis.org/member.php?115786-mmd2009) فکر کنم منظور دوستمون این هست که به فرمی که در حال حاظر باز هست دسترسی داشته باشیم نه این که فرم جدیدی ایجاد کنیم

mmd2009
پنج شنبه 16 دی 1389, 18:56 عصر
فرقی نداره از فرم 1 بفرستیم به فرم 2 یا از فرم 2 به فرم یک. کافیه یه خورده تغییرش بدیم. که اونم به عهده خودش میذارم.

موفق باشید.