PDA

View Full Version : دسترسی به کنترل فرم دیگر



rezaee2
شنبه 20 اردیبهشت 1393, 10:11 صبح
سلام
برنامم دوتا فرم داره
یکی frmMain که با اجرای برنامه باز میشه
دیگری form2
میخوام فرم2 رو باز کردم، موقع بستنش یه کمبوباکس که توی frmMain هست دوباره cmb.datasource رو مقداردهی کنم

باید چیکار کنم؟ چطور از توی فرم2 بتونم کمبوباکسی که توی frmMainهست رو مقدار بدم؟

ممنون

shahryari
شنبه 20 اردیبهشت 1393, 10:29 صبح
فرم دوم رو شودیالوگ کن
بعد از کد شو دیالوگ کدت رو بذار

javadaskari
شنبه 20 اردیبهشت 1393, 10:49 صبح
برای دسترسی به اشیای جاهای دیگه 2 کار میتونی بکنی:
1- اون شی به صورت public static تعریف شده باشد
2-شی را به کلاس دوم پاس بدی

روش دوم بهتره، مثلا من میخام combobox فرم اول را در فرم دوم داشته باشم، در سازنده فرم دوم combobox را دریافت میکنم:

public form2(ComboBox combo){...}
موقعی که در فرم اول میخام فرم دوم را باز کنم ، بعد از new کردن form2 باید combobox رو هم بهش پاس بدم:

Form2 form2 = new Form2(combobox); form2.show();

در روش اول باید combobox را در فرم اول به صورت public و static تعریف کنی:

public static ComboBox combobox;
و بعد در فرم دوم با دستور زیر بهش دسترسی داری:

Form1.combobox

rezaee2
شنبه 20 اردیبهشت 1393, 11:07 صبح
فرم دوم رو شودیالوگ کن
بعد از کد شو دیالوگ کدت رو بذار

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


برای دسترسی به اشیای جاهای دیگه 2 کار میتونی بکنی:
1- اون شی به صورت public static تعریف شده باشد
2-شی را به کلاس دوم پاس بدی

روش دوم بهتره، مثلا من میخام combobox فرم اول را در فرم دوم داشته باشم، در سازنده فرم دوم combobox را دریافت میکنم:

public form2(ComboBox combo){...}
موقعی که در فرم اول میخام فرم دوم را باز کنم ، بعد از new کردن form2 باید combobox رو هم بهش پاس بدم:

Form2 form2 = new Form2(combobox); form2.show();

در روش اول باید combobox را در فرم اول به صورت public و static تعریف کنی:

public static ComboBox combobox;
و بعد در فرم دوم با دستور زیر بهش دسترسی داری:

Form1.combobox



سلام دوست من
ممنون
راهکارت جای دیگه به کارم میاد..


لطف کردید
موفق باشید

omid nasri
شنبه 20 اردیبهشت 1393, 12:33 عصر
من درست متوجه نشدم ، اما اگه می خوای بعد از اینکه فرم دوم بسته شد و فرم اول دوباره اپدیت بشه می تونی از Evint که اگه اشتباه تایپ نکنم Active هستش دوباره متد اپدیت رو فراخونی کن.

rezaee2
دوشنبه 22 اردیبهشت 1393, 08:04 صبح
من درست متوجه نشدم ، اما اگه می خوای بعد از اینکه فرم دوم بسته شد و فرم اول دوباره اپدیت بشه می تونی از Evint که اگه اشتباه تایپ نکنم Active هستش دوباره متد اپدیت رو فراخونی کن.
سلام دوست عزیز
ممنون از پاسخت
از این راه هم میشه
اما اگه بخواییم از این روش استفاده کنیم، وقتی روی فرم اصلی هستیم رویداد اکتیو دائم فعال هست و دائم اون قطعه کد اجرا میشه..
مگر اینکه بخوایم یجوری بگیم فقط وقتی اجرا بشه که پنجره فرم2 بسته شد.

این کدش چی میشه؟