PDA

View Full Version : سوال: کمک در مورد فرم های splash



hahaie
پنج شنبه 09 تیر 1390, 08:07 صبح
سلام دوستان.من نمونه برنامه ای که برای ایجاد فرم های splash بود را دانلود کردم.اما مشکلی که دارم اینه که فرم اصلی در زیر فرم splash (که در واقع فرم تبلیغاتی است و اول نمایش داده میشه)نمایش داده میشه.قابل ذکره که در form_load فرم اصلی به جز دو خط اول که باید بگم فرم splash را نشون بده در خطوط بعدیش کلی کد در اون دارم از جمله تنظیمات نمایش.حال میخوام فرم اصلی نشون داده نشه.البته در نمونه برنامه این طوری نیست.ممنون میشم کسی به طور مطمئن راهنماییم کنه

AlgorithmX
شنبه 11 تیر 1390, 02:52 صبح
سلام!
ببین منم واسه یه برنامم همچین مشکلی رو داشتم تا این که تویه پروژه آماده دیدم که از این روش ساده استفاده کرده بود. این روش رو میگم تا کاره تو رو راه بندازه!
ببین توی کلاس Program.cs در قسمت Main نوشته :
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());
}


قسمت Application.Run(new Form1()); برای اجرای فرم اول توه ،خوب اینو که معلومه میدونی!
خوب حالا تو نام فرم Splash رو به جای Form1 قرار بده و در پایین این خط فرم 1 رو لود کن، یعنی میشه این:
Application.Run(new Splash());
Application.Run(new Form1());

حالا تا وقتی که فرم Splash بسته نشه فرم1 هم اجرا نمیشه!!!
اون موقه توی فرم Splash به راحتی میتونی بنویسی :
this.Close();
تا فرم Splashبسته شه و فرم اصلیت (که در اینجا Form1 ) باز بشه! به همین سادگی!!

Hossenbor
شنبه 11 تیر 1390, 09:47 صبح
اسپلاشی که استاد ساختند یک ایراد داره اگه برنامه ات سنگین باشه یعنی اشیا زیادی روی فرم 1 داشته باشی بازم سنگینی رو داری نظرم اینه که از thread استفاده کنی و در مورد عقب افتادن برنامه تمام روشا رو امتحان کردم نشد بغییر یکی که فکر کنم کدی بود تو رویداد form show بود گذاشتم ببینم اگه کدو پیدا کردم واست میزارم قبلا خاصیت top most کا میکرد الان نمی کنه نمی دونم چه مرگشه

AlgorithmX
شنبه 11 تیر 1390, 12:03 عصر
اسپلاشی که استاد ساختند یک ایراد داره اگه برنامه ات سنگین باشه یعنی اشیا زیادی روی فرم 1 داشته باشی بازم سنگینی رو داری نظرم اینه که از thread استفاده کنی و در مورد عقب افتادن برنامه تمام روشا رو امتحان کردم نشد بغییر یکی که فکر کنم کدی بود تو رویداد form show بود گذاشتم ببینم اگه کدو پیدا کردم واست میزارم قبلا خاصیت top most کا میکرد الان نمی کنه نمی دونم چه مرگشه

ولی عزیزم در روشی که گفتم هرچقدرهم فرم اصلیت سنگین باشه روی سرعت اجرای splash هیچ تاثیری نمیزاره! چون درحالت کلی فرم اصلی همون زمان رو که برای لود کردن نمونه هاش صرف می کنه رو، سپری خواهد کرد حالا چه splash باشه چه نباشه! و استفاده از ترد هم برای موقعه ای پیشنهاد میشه که قراره ابزارها، کنترل ها، کامپوننتها و عوامل برنامه در فرم splash اجرا و برسی بشه! (مانند نرم افزارهای Office Word, Photoshop , ..)

Hossenbor
شنبه 11 تیر 1390, 12:54 عصر
نه منم مثل فتوشاپ میگم اسپلش هایی که من تا حالا ساختم حالت تحرک داشتند مثلا آرم برنامه یا مثل office 2010 ولی من از این لحاظ گفتم که برنامه به صورت خطی و خط به خط اجرا میشه مثلا شما فرض کن از اسکینهایی مثل devexpress و یا telerik و یا یک متن بزرگ داری که لود بشه و یا تو برنامه ات از تصویر استفاده کردی این حالتها رو میگم در ضمن دوسته عزیز هاهایی سوالتون گنگه میشه یک نمونه بزارید

AlgorithmX
شنبه 11 تیر 1390, 22:19 عصر
اون توضیح بالا که شرحی لازم نداره!
فقط به جای
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());
}
در کلاس Program.cs بنویسه :
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Splash());
Application.Run(new Form1());
}