بستن فرم با کد نویسی - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۱۵۱ نفر آنلاین
۲۸ عضو و ۱۲۳ مهمان در سایت حاضرند

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

+2 امتیاز

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

سوال شده فروردین 4, 1393  بوسیله ی Sher228 (امتیاز 167)   18 33 44
ویرایش شده فروردین 4, 1393 بوسیله ی BlueBlade

1 پاسخ

+5 امتیاز
 
بهترین پاسخ

سلام.

در برنامه های winapp یک فرم بصورت فرم والد (parent) درون فایل Program.cs وجود داره که فرم آغازین برنامه شما هست.

اگر برنامه شما چندین فرم داشته باشه،در حالت عادی تمام فرم های دیگه به غیر از فرم والد با کد زیر بسته میشن (فقط همون فرم بسته میشه) :

this.Close();

اما اگر همین کد رو برای فرم والد هم بذارید، کل برنامه بسته میشه. دلیلش هم واضح هست. وقتی فرم والد بسته میشه، فرم های دیگه امکان باز بودن رو ندارند و اجبارا باید تمامی فرم ها (کل پروژه) بسته بشه. این ها همش بخاطر این هست که برنامه شما(فرم والد) وقتی استارت میخوره در یک ترد (Thread) مشغول به اجرا شدن میکنه. وقتی فرم والد بسته میشه اون تردی هم که بهش اختصاص داده شده بسته میشه و این باعث بسته شدن کل پروزه میشه.

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

برای این کار ابتدا یه متد ساده درون فرم والد ایجاد کنید :

private void Show()
        {
            Form2 f2 = new Form2();
            f2.ShowDialog();
        }

حالا درون دکمه ای که قصد خروج دارید ابتدا ترد جدید رو ایجاد و start کنید و بعدش فرم جاری (فرم والد) رو ببندید :

 private void BtnExit_Click(object sender, EventArgs e)
        {
            System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(Show));
            t.Start();
            this.Close();
        }

موفق باشید.

پاسخ داده شده فروردین 4, 1393 بوسیله ی veniz2008 (امتیاز 2,083)   1 5 21
انتخاب شد فروردین 5, 1393 بوسیله ی BlueBlade
...