PDA

View Full Version : حرفه ای: مشکل در لود UserControl



ebrahim.rayatparvar
پنج شنبه 05 شهریور 1394, 17:43 عصر
سلام خدمت همه اساتید و مهندسین عزیز و دوستای خودم.

من در ط.ل طراحی برنامه به مشکلی بر خوردم به این صورت که به جای اینکه از فرم استفاده کنم از UserControl در برنامه استفاده کردم و این UserControl ها رو تو تب های مجزا لود می کنم حالا به یه فرمی رسیدم که خیلی کنترل داره کلا این فرم من خودش داخل به 12 تب تقسیم میشه که داخل هر تب کار نجزا خودش رو انجام میده. تو فرم های دیگه که سبک هستند مشکلی نیست زمانی که از منو ریبون دکمه مورد نظر رو می زنم راحت لود میشن ولی زمانی که این فرم میخواد لود بشه خیلی طول میکشه حتی با اینکه 1 بار هم اجرا شده یا حتی چندبار در طول برنامه اجرا شده و تو رم هست ولی باز طول میکشه. یه بار تریس کردم دیدم به جایی که میاد میخواد UserControl مورد نظر رو ایجاد کنه برای ساختنش میره داخل سورس و تک تک تک ظاهرا همه کنترل ها و متغیرها رو ساختن که باعث کند شدن سرعت میشه.این هم کدی که برای ایجاد تب و لود UserControl زدم :

کد زمانی که روی دکمه کلیک میشه :


private void barBtnPart_ItemClick(object sender, ItemClickEventArgs e)
{
FrmPart ctlPart = new FrmPart();
ClickItemRibbon("FrmPart", barBtnPart.Caption,barBtnPart.Glyph, ctlPart);
}


این هم تلبع لود کردن :


private void ClickItemRibbon(string UerControlName, string textTab,Image header, Control ctl)
{
SplashScreenManager.ShowForm(typeof (WaitForm1));
try
{
xtraTabMain.TabPages.Add(" " + textTab);
xtraTabMain.SelectedTabPage = xtraTabMain.TabPages[Counter.TabMainConter++];
xtraTabMain.SelectedTabPage.ImageIndex = 0;
xtraTabMain.SelectedTabPage.Controls.Add(ctl);
ctl.Dock = DockStyle.Fill;
}
catch (ReflectionTypeLoadException)
{

}
catch (Exception ex)
{
ShowMessage.Show(ex.Message, "خطا در برنامه", ShowMessage.PersionMessageBoxButton.Ok,
ShowMessage.PersionMessageBoxIcon.Error);
}

SplashScreenManager.CloseForm();
}


تریسی که من گذاشتم روی این خط برام تو سورس کد اول داره طول میکشه :


FrmPart ctlPart = new FrmPart();

ebrahim.rayatparvar
شنبه 07 شهریور 1394, 16:44 عصر
برای نمونه ساخت از یک User Control در برنامه به نظر شما چه کاری کنم که سرعت این نمونه سازی برای User Control های بزرگ بیشتر بشه؟؟؟