تبلیغات
4linecode - باز شدن فرم دوم و بسته شدن فرم اول

جستجو

 

باز شدن فرم دوم و بسته شدن فرم اول

جمعه 19 اسفند 1390   11:37 ق.ظ


نوع مطلب : آموزش C#.NET ،

مشکلی که در این کار هست برنامه نویس میخواد بعد فرم Login و بررسی صحت کلمه و کد عبور، این فرم بسته بشه و کاربر به فرم اصلی برسه در اولین نگاه میتونیم:

this.Hide();
frmMain frmForm = new frmMain();
frmForm.Show();

اینطوری فرمتون  باز بعضی مواقع دیده میشه و یا می افته پشت فرم های دیگه، ضمن اینکه فضای حافظه بیخودی اشغال میمونه. در پایان هم زمانی که دیگه میخواید از کل برنامه خارج بشید میتونید از کد زیر استفاده کنید که معادل End در وی بی هست:

Application.Exit();

روش دوم استفاده از Thread هستش که بحثش خیلی مفصله. تکه کد زیر باعث میشه فرم Login بسته و بلافاصله فرم اصلی دیده بشه:

System.Threading.Thread objThread = new System.Threading.Thread(new System.Threading.ThreadStart(RunForm));
objThread.IsBackground = false;
objThread.Start();
this.Close();

void RunForm()
{
     Application.Run(new frmMain());
}

در حالت معمول، بدون استفاده از Thread قبل از باز شدن فرم اصلی با بستن فرم Login برنامه به پایان میرسه. اما از معایب این روش که من نتونستم این ایراد رو رفع کنم و امیدوارم که دوستان جهت رفع این ایراد منو راهنمایی کنن، استفاده از دیالوگها مثل Open یا Save هستش که با باز شدن ایتها برنامه دچار خطا میشه.

در روش سوم که همچی عالی پیش میره و من ازین روش استفاده میکنم. شما میتونید تو رویداد Load فرم اصلی، فرم Login رو بصورت ShowDialog نمایش بدید:

this.Hide();
using (frmLogin objForm = new frmLogin())
{
    if (objForm.ShowDialog() == DialogResult.OK)
    {
        this.Show();
    }
    Else
        this.Close();
}


نوشته شده توسط : Mehran Roohi Karimi