PDA

View Full Version : سوال: لود شدن فرم برای اولین بار



alimooghashang
شنبه 14 شهریور 1394, 12:19 عصر
سلام
من یه فرم طراحی کردم و از کامپوننت های devexpress استفاده کردم
سوالی که دارم اینه آیا راهی هست که فرم بصورت یکباره لود بشه نه که گیر کنه و کامپوننت ها یکی یکی لود بشن!
ممنون

ahmadreza.s
شنبه 14 شهریور 1394, 12:35 عصر
سلام میتونی بیای یه فورم دیگه درست کنی و نخی بهش بدی که اول از همه اون اجرا شه ، بعد وقتی فورم اصلیت کامل لود شد ، اون فورم لطفا صبر کنید بره و فورم اصلی نمایش داده بشه !
فهمیدی؟ :لبخند:
این آموزش (http://dl.daneshjooyar.com/users/user1017/Progress.exe) رو هم ببینید ! (اگه تبلیغ نباشه)

alimooghashang
شنبه 14 شهریور 1394, 13:16 عصر
من میخوام قبل ازینکه فرم لود بشه اینکار انجام بشه

ahmadreza.s
شنبه 14 شهریور 1394, 13:34 عصر
خوب این آموزش هم درمورد همینه که میگین

alimooghashang
شنبه 14 شهریور 1394, 13:56 عصر
نه ظاهرا متوجه منظور من نشدین
من میخوام اول splash بیاد
فرم لود بشه کامل بعد splash بسته بشه و فرم اصلی نمایش بده
دقیقا مثل WORD
کاربر نمیفهمه که کامپوننت ها یکی یکی لود میشه همه سریع لود میشن و فرم به یکباره نمایش داده میشه

esagraphic
دوشنبه 16 شهریور 1394, 10:56 صبح
خوب این آموزش هم درمورد همینه که میگین


سلام منم همین مشکل را دارم زمان اول که فرم لود میشه یه 10 ثانیه طول میکشه من میخوام یه splash بزارم تا زمانی که اون فرم کاملاً لود شد و کامل شد بعد Splash بسته بشه اما این کارو نتونستم اگه میشه رهنمائی کنی دقیقا زمانی که intializecomponent میکنه طول میکشه چیطور کاری کنم که فرم نمایش داده نشود زمانی که کاملاً لود شد فرم نشان داد ه بشه و splash بسته بشه

FastCode
دوشنبه 16 شهریور 1394, 11:16 صبح
فکر میکنم تا کدتون رو نزارید مشخص نمیشه چه مشکلی داره.

esagraphic
دوشنبه 16 شهریور 1394, 11:19 صبح
فکر میکنم تا کدتون رو نزارید مشخص نمیشه چه مشکلی داره.

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

FastCode
دوشنبه 16 شهریور 1394, 11:26 صبح
کدهای مربوط به لود شدن رو به constructor منتقل کنید.
از SuspendLayout و ResumeLayout استفاده کنید.
میتونید قسمتی از کدتون رو به یک ترد دیگه منتقل کنید و همزمان اجراش کنید و اون ترد رو join کنید یا از یک AutoResetEvent برای مراحل مختلف استفاده کنید.یا در آخر کد اون ترد از Control.Invoke استفاده کنید.
میتونید از یک ترد و Message Loop جدا برای فرمتون استفاده کنید.
و چند صد راه دیگه.
راه زیاده.من نمیدونم مشکل چیه که راه درست پیشنهاد بدم.