ebrahim.rayatparvar
سه شنبه 06 مرداد 1394, 22:54 عصر
سلام خدمت همه دوستای خوبم.
من تو برنامه در فرم الی یک xtraTab از کامپوننت devexpress رو دارم که با زدن هر یک از آیتم ها در منو اصلی من یک تب جدید درست میشه و UserControl مربوطه داخلش لود میشه.
حالا زمانی که این تب ها ایجاد میشن یک حافظه ای رو اشغال میکنن که با بستن تب این حافظه ها آزاد نمیشن. برای رویداد بستن تب هم کد زیر رو زدم.
private void xtraTabMain_CloseButtonClick(object sender, EventArgs e) //--- بستن تب های کنترل تب اصلی
{
var x = xtraTabMain.SelectedTabPageIndex;
ClosePageButtonEventArgs arg = e as ClosePageButtonEventArgs;
XtraTabPage tabPage = (XtraTabPage) arg.Page;
xtraTabMain.TabPages.Remove(tabPage);
//xtraTabMain.TabPages.Remove(xtraTabMain.SelectedTa bPage);
Counter.TabMainConter--;
if (x + 1 >= Counter.TabMainConter)
{
x = Counter.TabMainConter;
x--;
}
tabPage.Dispose();
tabPage = null;
GC.Collect();
GC.WaitForPendingFinalizers();
xtraTabMain.SelectedTabPage = xtraTabMain.TabPages[x];
}
با تشکر از دوستای خوبم
من تو برنامه در فرم الی یک xtraTab از کامپوننت devexpress رو دارم که با زدن هر یک از آیتم ها در منو اصلی من یک تب جدید درست میشه و UserControl مربوطه داخلش لود میشه.
حالا زمانی که این تب ها ایجاد میشن یک حافظه ای رو اشغال میکنن که با بستن تب این حافظه ها آزاد نمیشن. برای رویداد بستن تب هم کد زیر رو زدم.
private void xtraTabMain_CloseButtonClick(object sender, EventArgs e) //--- بستن تب های کنترل تب اصلی
{
var x = xtraTabMain.SelectedTabPageIndex;
ClosePageButtonEventArgs arg = e as ClosePageButtonEventArgs;
XtraTabPage tabPage = (XtraTabPage) arg.Page;
xtraTabMain.TabPages.Remove(tabPage);
//xtraTabMain.TabPages.Remove(xtraTabMain.SelectedTa bPage);
Counter.TabMainConter--;
if (x + 1 >= Counter.TabMainConter)
{
x = Counter.TabMainConter;
x--;
}
tabPage.Dispose();
tabPage = null;
GC.Collect();
GC.WaitForPendingFinalizers();
xtraTabMain.SelectedTabPage = xtraTabMain.TabPages[x];
}
با تشکر از دوستای خوبم