PDA

View Full Version : مبتدی: بار گذاری فرم 1 در form closed فرم 2



kamiloted
یک شنبه 04 مهر 1395, 01:58 صبح
سلام دوستان
بنده 2 فرم دارم که میخوام توی رویداد بسته شدن فرم 2
یه کد بنویسم که فرم 1 لود بشه یا بارگذاری بشه یا تازه سازی بشه یا رفرش بشه خلاصه هرچی میگن.فرم 1 خودش باز هست.
مثه این کدها.

frm1 x = new frm1();
x.Refresh();



frm1 x = new frm1();
x.load();



form1_load(sender,e)

ممنون میشم یه کد صحیح بهم بدید.

ronix3
یک شنبه 04 مهر 1395, 07:42 صبح
new Form2().Show();

kamiloted
یک شنبه 04 مهر 1395, 13:52 عصر
new Form2().Show();

دوست عزیز فرم 1 خودش باز هست.

ronix3
یک شنبه 04 مهر 1395, 14:19 عصر
به جای Form2 اسم فرمی که می خواید باز کنید رو بنویسید

kamiloted
یک شنبه 04 مهر 1395, 15:37 عصر
به جای Form2 اسم فرمی که می خواید باز کنید رو بنویسید
شما یه بار قشنگ بخون بعد جواب بده.

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

sajaaaaad
یک شنبه 04 مهر 1395, 15:51 عصر
فک کنم قطعه کدتو بذاری بهتر بشه راهنماییت کرد. ولی با فرض اینکه شما همچین کاری کردی.!


form2 objfrm=new form2();
objfrm.showDialog();

حالا کافیه بعد از showdialog فرمت رو رفرش کنی. چون به محض اینکه فرم دو بسته بشه ادامه دستورات اجرا میشن مثلا اینجوری.


form2 objfrm=new form2();
objfrm.showDialog();
this.Form1_load(null,null);

به جای پارامترهاش null بفرستی اجرا میشه کدهای داخل فرم لودت. یا هر تابع دیگه ای مثل btn_click بهشون null بفرست اجرا میشه دستورات داخلش.

daniyaltjm
یک شنبه 04 مهر 1395, 16:02 عصر
frm1 f1 = (frm1)Application.OpenForms["frm1"];
f1.Refresh

حالا به جای متد Refresh می تونی متدی رو توی فرمت صدا بزنی که باید عملیات مثلا مربوط به بانک رو انجام بده یا هر متد دیگه...

mrprestige
یک شنبه 04 مهر 1395, 18:32 عصر
سلام دوست من جناب kamiloted (http://barnamenevis.org/member.php?254967-kamiloted) ، عذر میخوام میتونم بپرسم هدف اصلی تون چیه ؟ از این جهت عرض میکنم شاید اصلا لازم نباشه این پروسه رو اجرا کنید ( یعنی رفرش شدن فرم1 در صورت بسته شدن فرم 2 ) . شاید اصلا دوستان روش بهتری رو بهتون پیشنهاد دادن .


پیروز و موفق باشید

kamiloted
یک شنبه 04 مهر 1395, 19:50 عصر
سلام دوست من جناب kamiloted (http://barnamenevis.org/member.php?254967-kamiloted) ، عذر میخوام میتونم بپرسم هدف اصلی تون چیه ؟ از این جهت عرض میکنم شاید اصلا لازم نباشه این پروسه رو اجرا کنید ( یعنی رفرش شدن فرم1 در صورت بسته شدن فرم 2 ) . شاید اصلا دوستان روش بهتری رو بهتون پیشنهاد دادن .


پیروز و موفق باشید

سلام ممنون آغا محسن.
بنده یک فرم دارم با عنوان فرم لیست فاکتورها

که من برای مثال یکی از فاکتورها رو با شماره 6 انتخاب میکنم و میزنم روی ویرایش فاکتور
فرم ویرایش فاکتور باز میشود. و ویرایش را انجام میدهیم.و قیمت برای مثال بیشتر شده.
حال که ما فرم ویرایش را میبندیم باید قیمت کل در فرم لیست فاکتورها آپدیت شود.

این آپ دیت در صورتی اتفاق می افتد که ما فرم لیست فاکتورها را ببندیم و مجدد باز کنیم.به صورتی فرم لود شود.

خب حالا اگه پیشنهادی خوب و اصولی دارین بفرمایین.ممنونم

sajaaaaad
یک شنبه 04 مهر 1395, 20:14 عصر
سلام. بنظر من.
اینجور مواقع بهتره همون کاری که موقع لود شدن فرم فاکتورت انجام میدی (که اطلاعات رو بیرون میکشه از بانک اطلاعاتی یا هرجایی) اون رو به صورت تابع بنویس و همون تابع رو بعد از بسته شدن فرم شماره 2 دوباره فراخوانی کن.
یعنی این شکلی:

1- اجرای فرم شماره یک
2- اجرای تابع پر کردن اطلاعات مربوط به فاکتور (فرم شماره یک)
3- انتخاب یک فاکتور و باز شدن فرم جدید (فرم شماره 2)
4- فراخوانی مجدد تابع پرکردن اطلاعات مربوط به فاکتور (فرم شماره یک)

mrprestige
یک شنبه 04 مهر 1395, 21:45 عصر
سلام ممنون آغا محسن.
بنده یک فرم دارم با عنوان فرم لیست فاکتورها

که من برای مثال یکی از فاکتورها رو با شماره 6 انتخاب میکنم و میزنم روی ویرایش فاکتور
فرم ویرایش فاکتور باز میشود. و ویرایش را انجام میدهیم.و قیمت برای مثال بیشتر شده.
حال که ما فرم ویرایش را میبندیم باید قیمت کل در فرم لیست فاکتورها آپدیت شود.

این آپ دیت در صورتی اتفاق می افتد که ما فرم لیست فاکتورها را ببندیم و مجدد باز کنیم.به صورتی فرم لود شود.

خب حالا اگه پیشنهادی خوب و اصولی دارین بفرمایین.ممنونم
برام جالب شده چرا آقا با غ مینویسی ؟ دلیل خاصی داره ؟! . خب بگذریم ببین در تکمیل نظر نظر دوست خوبمون sajaaaaad (http://barnamenevis.org/member.php?285483-sajaaaaad) عرض کنم که میتونی اصلا یه کلاس استایک تعریف کنی که داخلش متدهای حذف و ویرایش و ... رو هم قرار بدی و داخل فرم شماره یک اینو بنویسی

var form2 = new Form2();
form2.FormClosing += FrmClosing;
form2.Show();
و متد FrmClosing رو داخل کلاس Form اینطور مینویسیم

private void FrmClosing(object sender, FormClosingEventArgs e)
{
// فراخوانی کلاس و متد مربوطه
}





پیروز و موفق باشید

kamiloted
دوشنبه 05 مهر 1395, 21:13 عصر
دوستان روش دیگه ای نیست.ممنونم

hamid_hr
پنج شنبه 08 مهر 1395, 18:08 عصر
الان چند تا روش تو تاپیکها گفته شده
مشکل این روش ها چیه؟
چرا از اینا استفاده نمیکنید؟

kamiloted
پنج شنبه 08 مهر 1395, 21:41 عصر
الان چند تا روش تو تاپیکها گفته شده
مشکل این روش ها چیه؟
چرا از اینا استفاده نمیکنید؟

یک روش که بیشتر گفته نشد.
مشکلی ندارن.
اما من توی دلفی با یک دستور رفرش فرم های دیگه رو رفرش میکردم یقینا توی سی شارپ هم هست.

kamiloted
سه شنبه 27 مهر 1395, 23:13 عصر
سلام. بنظر من.
اینجور مواقع بهتره همون کاری که موقع لود شدن فرم فاکتورت انجام میدی (که اطلاعات رو بیرون میکشه از بانک اطلاعاتی یا هرجایی) اون رو به صورت تابع بنویس و همون تابع رو بعد از بسته شدن فرم شماره 2 دوباره فراخوانی کن.
یعنی این شکلی:

1- اجرای فرم شماره یک
2- اجرای تابع پر کردن اطلاعات مربوط به فاکتور (فرم شماره یک)
3- انتخاب یک فاکتور و باز شدن فرم جدید (فرم شماره 2)
4- فراخوانی مجدد تابع پرکردن اطلاعات مربوط به فاکتور (فرم شماره یک)

دوست عزیز شماره 4 رو واضح تر توضیح میدین.ممنون

juza66
سه شنبه 27 مهر 1395, 23:43 عصر
سلام آقا کمیل

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


Private void LoadDB()
{
// اینجا کوئری دریافت داده رو از دیتابیس و ریختن اون رو درون دیتاگریدت بنویس
}



حالا فرمت اولت که باز میشه این تابع رو صدا میکنه درست


LoadDB();


حالا یک دکمه داری فرم دو رو نمایش میدی درست؟


var form2 = new Form2();

form2.ShowDialog();
LoadDB();



حالا بعد از اینکه فرم دومت بسته بشه تابع زیرش صدا زده میشه


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


موفق باشی