PDA

View Full Version : سوال: افزایش سرعت لود شدن کنترل ها



mz6488
شنبه 30 دی 1391, 17:38 عصر
سلام.یه برنامه نوشتم که توش تعداد زیادی پنل داره اما سرعت لود شدن این پنل ها موقع لود شدن فرم پایین هستش.چجوری میشه سرعت لود شدنشون رو زیاد کرد؟

vahid2112
شنبه 30 دی 1391, 17:59 عصر
تا جایی که من میدونم پنل زیاد سرعت نمیگیره
مشکل از کنترلهاییه که تو پنل استفاده کردی

mz6488
شنبه 30 دی 1391, 18:15 عصر
تا جایی که من میدونم پنل زیاد سرعت نمیگیره
مشکل از کنترلهاییه که تو پنل استفاده کردی
حدود 40 تا پنل استفاده کردم واسه همین سرعت لود شدنش یه ذره پایین.میخوام به صورت خیلی عادی لود بشن.

the king
شنبه 30 دی 1391, 18:28 عصر
حدود 40 تا پنل استفاده کردم واسه همین سرعت لود شدنش یه ذره پایین.میخوام به صورت خیلی عادی لود بشن.

شخصا معمولا با این مشکل در ساختن فرم Settings نرم افزار زیاد مواجه میشم، چون تعداد بخش ها و کنترل هایی که در اون فرم قرار می دهم معمولا زیاده.
راه حلی که بکار می برم اینه، کنترل های هر بخش رو جداگانه و در یک User Control جدید قرار می دهم و حتی کد های مربوط به اونها رو هم داخل
همون UserControl می نویسم.

داخل اون فرم اصلی بجز یک Panel خالی چیزی لازم نیست، قراره اون User Control ها بعدا موقع اجرا داخل این Panel ایجاد شوند، اونم نه همشون یکجا،
هر وقت لازم شد گروه خاصی از اون کنترل ها داخل Panel دیده بشه، اول چک می کنیم که آماده اش هست یا نه، اگر نبود یک شی جدید از اون
User Control خاص می سازید و داخل Panel قرار می دهید. یعنی کاربر بصورت تدریجی باعث فراخوانی User Control ها میشه، و فقط اونهایی که
می خواهد ببینه. اینطوری تا زمانی که که کاربر تمایلی به دیدن یک گروه خاص از اون کنترل ها نداره، نه فراخوانی ای در کاره و نه نمایشی.
به همین جهت سرعت فراخوانی فرم و نمایش بخش ها خیلی بالا میره. البته اینکار برای جمع و جور کردن کد داخل فرم هم مفیده.

اگه در پیاده سازی این ایده با مشکل مواجه شدید، می توانم براتون یک نمونه عملی اش رو بسازم.

mz6488
یک شنبه 01 بهمن 1391, 11:14 صبح
شخصا معمولا با این مشکل در ساختن فرم Settings نرم افزار زیاد مواجه میشم، چون تعداد بخش ها و کنترل هایی که در اون فرم قرار می دهم معمولا زیاده.
راه حلی که بکار می برم اینه، کنترل های هر بخش رو جداگانه و در یک User Control جدید قرار می دهم و حتی کد های مربوط به اونها رو هم داخل
همون UserControl می نویسم.

داخل اون فرم اصلی بجز یک Panel خالی چیزی لازم نیست، قراره اون User Control ها بعدا موقع اجرا داخل این Panel ایجاد شوند، اونم نه همشون یکجا،
هر وقت لازم شد گروه خاصی از اون کنترل ها داخل Panel دیده بشه، اول چک می کنیم که آماده اش هست یا نه، اگر نبود یک شی جدید از اون
User Control خاص می سازید و داخل Panel قرار می دهید. یعنی کاربر بصورت تدریجی باعث فراخوانی User Control ها میشه، و فقط اونهایی که
می خواهد ببینه. اینطوری تا زمانی که که کاربر تمایلی به دیدن یک گروه خاص از اون کنترل ها نداره، نه فراخوانی ای در کاره و نه نمایشی.
به همین جهت سرعت فراخوانی فرم و نمایش بخش ها خیلی بالا میره. البته اینکار برای جمع و جور کردن کد داخل فرم هم مفیده.

اگه در پیاده سازی این ایده با مشکل مواجه شدید، می توانم براتون یک نمونه عملی اش رو بسازم.

اگه زحمتی نیست یه نمونه عملی بذارید.دو نکته رو فراموش کردم:اول اینکه از پنل باتن مربوط به کامپوننت dev استفاده کردم.دوم اینکه از طریق حلقه foreach یه پیمایش رو کل پنل ها انجام دادم آخه یه بار کل این پنل ها رو تو یه گروپ باکس گذاشتم ولی حلقه تکرار نتونست پنل ها رو پیمایش کنه.

the king
یک شنبه 01 بهمن 1391, 17:10 عصر
اگه زحمتی نیست یه نمونه عملی بذارید.دو نکته رو فراموش کردم:اول اینکه از پنل باتن مربوط به کامپوننت dev استفاده کردم.دوم اینکه از طریق حلقه foreach یه پیمایش رو کل پنل ها انجام دادم آخه یه بار کل این پنل ها رو تو یه گروپ باکس گذاشتم ولی حلقه تکرار نتونست پنل ها رو پیمایش کنه.

لابد یک موردی رو رعایت نکرده اید، وگرنه نتیجه foreach و for (int نباید فرقی داشته باشه.

98741