PDA

View Full Version : حرفه ای: گذاشتن یه عکس متحرک gif روی فرمه splash چجوریه؟



zayens
دوشنبه 23 اردیبهشت 1392, 01:12 صبح
سلام دوستان
من یه splash ایجاد کردم و اونو اینجوری توی کلاس پروگرم گذاشتم

static class Program
{
public static SplashForm splash = null;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
splash = new SplashForm();
splash.Show();
Form1 Mainfrm = new Form1();
splash.Refresh();
Application.Run(Mainfrm);

}
}

روی فرم اسپلش یه pictureBox گذاشتم که یه عکس داره (با فرمت gif)(یه عکس لودینگ مثل لودینگ نقطه ایه ویندوز8)

در فرم اصلی هم اسپلش را اینجوری ریفرش میکنم:

public Form1()
{
//splash form open
Program.splash.Refresh();

///فرض کنین
///یه سری دستورات که پردازششون چند ثانیه
///طول میشکه اینجا گذاشته شده


//splash form close
Program.splash.Close();

InitializeComponent();

//.
//یه سری دستور دیگه
//.
}

اما مشکل اینجاست که فرم اسپلش بعد از اینکه نمایش داده میشه بخاطر سنگین بودن کدهایی که بعدش گذاشتم یه جورایی فریز میشه و عکس ثابت میمونه و اصلا متحرک نمیشه و بعد از پردازش اون کدها عکس متحرک میشه که دیگه اونموقع انیمیت شدنش به درد نمیخوره
چکار باید کرد؟

zayens
دوشنبه 23 اردیبهشت 1392, 01:16 صبح
راستی اینم بگم که من توی فرم اسپلش توی رویداد لود از ترید هم استفاده کردم
System.Threading.Thread th = new System.Threading.Thread(loadmyGIF);
th.IsBackground = true;
th.Start();
ولی نتیجه کماکان مثل قبل بود

zayens
دوشنبه 23 اردیبهشت 1392, 11:17 صبح
چرا سوالای منو هیچ وقت کسی جواب نمیده:گریه:

zayens
دوشنبه 23 اردیبهشت 1392, 14:34 عصر
کمک
کمک
کمک

keyvan_s89
دوشنبه 23 اردیبهشت 1392, 17:32 عصر
درود

http://dl.learnfiles.com/project/8002_loading_1392_01_04(www.learnfiles.com).zip