PDA

View Full Version : سوال: بستن فرم



Iran58
دوشنبه 13 اردیبهشت 1389, 14:41 عصر
مادوفرم داريم حال مي خواهم هرگاه روي دكمه فرم يك كليك كردم فرم دوبازشودوفرم يك هم بسته شود(هايدنشود)چكاركنم

bpzone
دوشنبه 13 اردیبهشت 1389, 14:56 عصر
اگه فرم یک فرم اصلی برنامت نباشه می تونی به راحتی اون فرم رو ببندی



this.Close();

r00tkit
دوشنبه 13 اردیبهشت 1389, 15:05 عصر
Form2 f=new Form2();
f.Show();
this.Close();

Parham.D
دوشنبه 13 اردیبهشت 1389, 15:07 عصر
سلام. نمیشه!! اگر Form2 باز بشه و Form1 بسته بشه، کل برنامه بسته میشه، مگر اینکه Form2 را به عنوان فرم شروع کننده انتخاب کنی، بعد Form1 باز و Form2 را ببندی.




Form1 OpenForm1 = new Form1();
OpenForm1.Show();
this.Close();



کلا کد این هست. ولی باید فرم شروع را عوض کنی با کد زیر. (در فایل program.cs)





Application.Run(new Form2());

r00tkit
دوشنبه 13 اردیبهشت 1389, 17:41 عصر
این رو بنویس دیگه حالشو ببر



System.Threading.Thread f = new System.Threading.Thread(() => { Form2 t = new Form2(); t.ShowDialog(); });
f.Start();
this.Close();

اَرژنگ
دوشنبه 13 اردیبهشت 1389, 17:52 عصر
این رو بنویس دیگه حالشو ببر



System.Threading.Thread f = new System.Threading.Thread(() => { Form2 t = new Form2(); t.ShowDialog(); });
f.Start();
this.Close();




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

اَرژنگ
دوشنبه 13 اردیبهشت 1389, 18:10 عصر
مادوفرم داريم حال مي خواهم هرگاه روي دكمه فرم يك كليك كردم فرم دوبازشودوفرم يك هم بسته شود(هايدنشود)چكاركنم

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

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

اگر برایه نشان دادن یک فرم لگین لازم دارید قبلاً یک مثال برایه همین کار که یک فرم را نشان بده و بعد از اینکه پسورد درست بود و فرم بسته شد فرم اصلی را نشان بده فرستاده بودم. (روش نگهداری و مقایسه پسوردش فقط برایه نمایش بود و در کار واقعی توصیه نمیشه).

یک روش ساده دیگر هم استفاده از این کد:



Application.Run(new Form1());
Application.Run(new Form2());

منتها من هیج جا نه استفاده از این کد را دیدم و نه در مورد مشکلات و مزایاش چیزی میگم، اگر روش اصلی درست باشد به چنین کارهایی که کد را کج و ماوج کنیم که به یک منظوری قد بده نیازی نیست.استفاده از چنین نوع کدهایی را که در ظاحر یک نیازی را براورده میکنند ولی در باتن معلوم نیست چه عوارظ جانبی را بوجود بیارند هیح وقت توصیه نمیکنم.

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

arefba
دوشنبه 13 اردیبهشت 1389, 18:12 عصر
چرا ببندی
مخفیش کن و ویزیبل رو فالز کن

اَرژنگ
دوشنبه 13 اردیبهشت 1389, 18:19 عصر
چرا ببندی
مخفیش کن و ویزیبل رو فالز کن
چرا مخفیش کنه و ویزیبلش رو فالس کنه؟ دلیلی برایه اینکه چیزی که بهش احتیاج نیست و در حافظه بماند هست؟
این روش اشتباهیست که برنامه‌نویسی حساب نمیشه، کد سرهم کردن بیشتر بهش میاد.

jigily
سه شنبه 14 اردیبهشت 1389, 13:22 عصر
من قبلا اين سوال مطرح كردم و جوابي كه گرفتم و مشكلم حل كرد اين بود
form objf=new form();
this.close();
this.dispose();
objf.showdialog();