PDA

View Full Version : سوال: بستن همزمان دو فرم و باز شدن یه فرم دیگه در ویندوز فرم



A.Hazratzad
دوشنبه 07 فروردین 1402, 20:34 عصر
سلام
پروژه ای دارم با سه تا فرم
تو فرم سوم دکمه ای هست که میره به فرم اول
در واقع باید فرم 2 و 3 بسته بشه که فرم 1 Active بشه
ولی هر چقدر گشتم و امتحان کردم نشد، کسی راه حلی داره؟
خیلی ضروریه...

ROSTAM2
سه شنبه 08 فروردین 1402, 08:57 صبح
سلام
پروژه ای دارم با سه تا فرم
تو فرم سوم دکمه ای هست که میره به فرم اول
در واقع باید فرم 2 و 3 بسته بشه که فرم 1 Active بشه
ولی هر چقدر گشتم و امتحان کردم نشد، کسی راه حلی داره؟
خیلی ضروریه...
به نام خدا، سلام.
بجای 3تا فرم 3 تا userControl و یک فرم با یک Panel که بشه با کلید UserControl ها رو برای Panel تغییر داد.

userCotrol1 Page1 = new UserControl1;
Page1.Dock = Fill;
this.panel1.Controls.Clear();
this.Panel1.Controls.Add(Page1);

A.Hazratzad
سه شنبه 08 فروردین 1402, 10:08 صبح
به نام خدا، سلام.
بجای 3تا فرم 3 تا userControl و یک فرم با یک Panel که بشه با کلید UserControl ها رو برای Panel تغییر داد.

userCotrol1 Page1 = new UserControl1;
this.panel1.Controls.Clear();
this.Panel1.Controls.Add(Page1);

ممنونم، حرف شما درست
ولی من سه تا فرم سنگین دارم که متاسفانه نمی تونم تغییرشون بدم...

ROSTAM2
سه شنبه 08 فروردین 1402, 10:17 صبح
ممنونم، حرف شما درست
ولی من سه تا فرم سنگین دارم که متاسفانه نمی تونم تغییرشون بدم...

بعضی وقت ها تغییر حتی کلی لازمه کار برنامه نویسیه تا بشه یک خروجی بی نقص داشت.
البته شما می تونید اشیاء فرم ها رو با Copy/paste به UserControl ها منتقل کنید، همچنین کدها رو.
هر چه کار با برنامه سریعتر و ساده تر باشه کاربر پسند تر خواهد بود.
البته این نظر منه.

mrsp1988
سه شنبه 08 فروردین 1402, 20:47 عصر
سلام حتی لازم به Copy/paste هم نیست برید تو کد برنامه بالا که نشوته :Form عوض کنید به جای فرم بنویسید UserControl

mr.sirwan
چهارشنبه 09 فروردین 1402, 13:45 عصر
سلام
پروژه ای دارم با سه تا فرم
تو فرم سوم دکمه ای هست که میره به فرم اول
در واقع باید فرم 2 و 3 بسته بشه که فرم 1 Active بشه
ولی هر چقدر گشتم و امتحان کردم نشد، کسی راه حلی داره؟
خیلی ضروریه...

دقیقا مشکلتون چیه؟ فقط کافیه فرم سه رو Hide کنید و فرم یک رو نمایش بدین

form3.Hide();
var form1 = new Form1();
form1.Show();

ShayanFiroozi
جمعه 18 فروردین 1402, 21:38 عصر
به نظر من شما باید یک کلاس استاتیک global تعریف کنین و همون ابتدای اجرای برنامه هر 3 فرم رو نمونه سازی کنین ، بعدش فقط فرم ها رو Show و Hide کنین ، نه اینکه در اسکوپ Local نمونه سازی کنین ، اینجوری کنترلی روش ندارین