آموزش ساخت splash screen در سی شارپ
سلام بر همه برنامه نویسان ایران زمین ! splash screen تصویر یا صفحه ایه که قبل از شروع برنامه به کاربر نمایش داده میشه و مثل صفحه loading می مونه. در این مطلب آموزش c#.net ، یاد می گیرین که چه طور برای برنامتون splash screen بسازید و اون رو به مدت 3 ثانیه به کاربر نمایش بدهید.
خب ابتدا یک پروژه ی جدید ویندوز فرم اپلیکیشن بسازید و سپس فرمتون رو به صورت زیر بسازید.(گذاشتن دکمه اختیاری است.)
سپس در قسمت solution explorer روی نام پروژه تون کلیک راست کنید و از قسمت Add گزینه ی New Item رو بزنید و Windows Form رو انتخاب کنید و نام فرم را SplashScreen بگذارید.
سپس در قسمت Properties مربوط به فرم جدید ، خاصیت FormBorderStyle را None انتخاب کنید تا بردر ها و دکمه های فرم مانند خروج و مکسیمایز و … نمایش داده نشوند.
سپس یک picture box برای عکس اسپلش اسکرین بگذارید و یک عکس برای آن انتخاب کنید.برای اطلاعات بیشتر درباره ی picturebox این جا را کلیک کنید.
پس از آن برای اینکه فرم splash screen ابتدا نمایش داده شود ، به قسمت solution explorer بروید و فایل Program.cs رو بازکنید و به جای کد Application.Run(new Form1()); کد Application.Run(new SplashScreen()); را قرار بدهید یعنی نام فرم جدیدتون رو جایگزین کنید.این کد نشون میده که کدوم فرم باید اول از همه نمایش داده بشه که چون صفحه ی اسپلش اسکرین باید اول از همه نمایش داده بشه ، باید فرم مربوط به اسپلش اسرین رو وارد کنید مثلا اگر نام فرم مربوط به اسپلش اسکرین شما Form2 بود باید Form2 رو قرار بدهید.
سپس در قسمت رویدادها روی Shown دابل کلیک کنید و کد های زیر را قرار دهید:
Timer tmr;
private void SplashScreen_Shown(object sender, EventArgs e)
{
tmr = new Timer();
//set time interval 3 sec
tmr.Interval = 3000;
//starts the timer
tmr.Start();
tmr.Tick += tmr_Tick;
}
کدهای بالا ابتدا یک تایمر می سازد و در رویداد Shown ، یعنی هنگامی که فرم نمایش داده شد ، اینتروال تایمر رو برابر 3000 میلی ثانیه قرار میدهد یعنی که هر 3 ثانیه یک بار.(برای اینکه فقط یک بار فرم اسپلش اسکرین انجام شود باید از متود Stop استفاده کرد که در کدهای بعدی نوشته می شود)
و پس از آن تایمر باید start شود و رویداد Tick آن ساخته شود.
سپس کدهای زیر را پایین کدهای قبلی اضافه کنید:
{
//after 3 sec stop the timer
tmr.Stop();
//display mainform
Form1 mf = new Form1();
mf.Show();
//hide this form
this.Hide();
}
در کد قبلی که مربوط به رویداد نشان داده شدن فرم بود ، تایمر استارت شده بود و حالا در این رویداد که رویداد Tick مربوط به تایمر هست ، باید تایمر متوقف شود چون هر بار Tick تایمر یعنی هر 3 ثانیه یک بار و چون می خواهم که فقط یک بار و 3 ثانیه فرم اسپلش اسکرین نمایش داده شود ، از این کد استفاده میکنم. حالا در رویداد Tick آن تایمر stop می شود چون 3 ثانیه وقفه ایجاد شده و پس از 3 ثانیه ، فرم اصلی که همان Form1 است به کاربر نمایش داده می شود و در آخر هم این فرم اسپلش اسکرین باید Hide شود.
قسمت پایانی کار (اختیاری)
شما باید پس از بسته شدن فرم اصلی تان کاری کنید که فرم اسپلش اسکرین بسته شود چون قبلا Hide شده بود.
پس کد زیر را در رویداد FormClosed فرم اصلی اضافه کنید:
این کد کل برنامه را می بندد.