PDA

View Full Version : بستن کامل فرم و ایجاد فرم جدید



MMRavari
جمعه 26 اسفند 1401, 18:03 عصر
با سلام به تمامی دوستان و تبریک به مناسبت فرا رسیدن سال نو
من برای فرا خوانی یک فرم جدید و بستن فرم موجود از دستور زیر استفاده میکنم



private void btnList_Click(object sender, EventArgs e)
{
Thread mythread = new Thread(new ThreadStart(OpenNewForm));
mythread.Start();
this.Close();
}
public static void OpenNewForm()
{
Application.Run(new frmShow());
}
مشکل من اینه که در هر بار فراخوانی باید نام فرم مورد نظر برای بسته شدن رو درون OpenNewForm قرار بدم
اگر بخوام اون رو بصورت یک متغیر تعریف کنم و هر بار با فراخوانی نام فرم و دستور



Application.Run(new myform);

رو فراخوانی کنم چطور ممکنه
ممنون از تمامی دوستان

god of war 313
شنبه 27 اسفند 1401, 07:25 صبح
سلام.

چرا از Show و ShowDialog استفاده نمی کنید؟


myform.show();
//or
myform.showdialog();

MMRavari
یک شنبه 28 اسفند 1401, 17:29 عصر
ممنون دوست عزیز و همراهی هم دوستان
ولی میتونم بپرسم باید دستوراتی رو که گفتی کجا استفاده کنم
من دارم با ترد فرمم رو فراخوانی میکنم و فرم قبلی رو میبندم
ممنون

god of war 313
دوشنبه 29 اسفند 1401, 18:22 عصر
ممنون دوست عزیز و همراهی هم دوستان
ولی میتونم بپرسم باید دستوراتی رو که گفتی کجا استفاده کنم
من دارم با ترد فرمم رو فراخوانی میکنم و فرم قبلی رو میبندم
ممنون

سلام بر دوست گرامی.

این دستورات کار خاصی انجام نمیدن.

صرفا برای نمایش دادن هستن.

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

مثال: فرض کنید شما یک فرم دارید. فرم شما فرم تنظیمات هست که name اش برابر هست با Setting .

مرحله اول : اول باید از فرمی که میخوایین نمایش بدین یک نمونه بسازین.

Setting st = new Setting();


Setting نام فرم هست و st هم نمونه ساخته شده از فرم.

مرحله دوم : حالا باید فرم رو نشون بدین.

شما میتونید از دو متد Show() وShowDialog() و .برای نمایش استفاده کنید


st.Show(); // با این متد فرم نمایش داده میشه و شما میتونید در فرم زیرین و یا در برنامه هنوز هم فعالیت کنید
st.ShowDialog(); // با این متد فرم نمایش داده میشه و تا فرم رو نبندید قادر به فعالیت در فرم زیرین و یا در برنامه نیستید

برای بستن فرم زیرین هم میتونید از متد زیر استفاده کنید.

this.Close();

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

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

امیدوارم برای شما مفید بوده باشه.(شرمنده دیر جواب دادم)

MMRavari
دوشنبه 29 اسفند 1401, 21:55 عصر
ممنون از پاسخ کامل تون
اما دستور Close فرم رو از حافظه خارج نمیکنه
من برای اینکه هر بار با باز بسته شدن فرم فضای حافظه کم نشه از دستورات تعیین شده استفاده می کنم
تنها میخوام بدونم اگر بخوام این دستورات رو در یک کلاس تنها بنویسم و هر بار با فراخوانی اون کلاس
فرم مورد نظر رو ارسال و از حافظه خارج کنم چطوری ممکنه
ممنون از لطف شما
و پیشاپیش سال نو مبارک

god of war 313
سه شنبه 01 فروردین 1402, 13:08 عصر
ممنون از پاسخ کامل تون
اما دستور Close فرم رو از حافظه خارج نمیکنه
من برای اینکه هر بار با باز بسته شدن فرم فضای حافظه کم نشه از دستورات تعیین شده استفاده می کنم
تنها میخوام بدونم اگر بخوام این دستورات رو در یک کلاس تنها بنویسم و هر بار با فراخوانی اون کلاس
فرم مورد نظر رو ارسال و از حافظه خارج کنم چطوری ممکنه
ممنون از لطف شما
و پیشاپیش سال نو مبارک

با سلام و تبریک سال نو.

شما از کجا فهمیدید که از حافظه خارج نمیشه؟