merge: 合并初始化缓存与资源释放优化

This commit is contained in:
2026-08-15 11:39:58 +08:00
27 changed files with 474 additions and 110 deletions
+43 -8
View File
@@ -64,6 +64,8 @@ namespace Lskj.Control
private MyControl _leftGridSearchObj;
private GridDragTree _gridDragTree;
private bool mModuleResourcesReleased;
private GridDragGrid _gridDragGrid;
private BandedGridDragGrid _bandedGridDragGrid;
public bool IsExcel { get { return Model is DynamicExcelModel; } }
/// <summary>
@@ -152,6 +154,7 @@ namespace Lskj.Control
public ModuleEx()
{
InitializeComponent();
this.Disposed += OnModuleExDisposed;
}
public void ReleaseResourcesForDispose()
@@ -207,6 +210,22 @@ namespace Lskj.Control
dragTree.Dispose();
}
GridDragGrid dragGrid = _gridDragGrid;
_gridDragGrid = null;
if (dragGrid != null)
{
dragGrid.OnDragComplete -= OnDragGridCompleted;
dragGrid.Dispose();
}
BandedGridDragGrid bandedDragGrid = _bandedGridDragGrid;
_bandedGridDragGrid = null;
if (bandedDragGrid != null)
{
bandedDragGrid.OnDragComplete -= OnDragBandedGridCompleted;
bandedDragGrid.Dispose();
}
try
{
if (treeLeft != null)
@@ -379,9 +398,14 @@ namespace Lskj.Control
if (Model.HasOperPrivilege() && model.IsBaseModule)
{
// 有权限则允许拖拽
this._gridDragTree = new GridDragTree(this.ModuleGridObj.GridControlObj.GridView, this.treeLeft.TreeView);
this._gridDragTree.CanDragParentNode = true;
this._gridDragTree.OnDragComplete += new GridDragTreeCompleteEventHandler(OnDragTreeCompleted);
if (_gridDragTree != null)
{
_gridDragTree.OnDragComplete -= OnDragTreeCompleted;
_gridDragTree.Dispose();
}
_gridDragTree = new GridDragTree(this.ModuleGridObj.GridControlObj.GridView, this.treeLeft.TreeView);
_gridDragTree.CanDragParentNode = true;
_gridDragTree.OnDragComplete += new GridDragTreeCompleteEventHandler(OnDragTreeCompleted);
}
if (this.SysModel.TreeDoubleClick)
{
@@ -428,10 +452,11 @@ namespace Lskj.Control
if (Model.HasOperPrivilege() && model.IsBaseModule && !this.SysModel.IsTreeTable)
{
// 有权限则允许拖拽
GridDragGrid dragGrid = new GridDragGrid(this.ModuleGridObj.GridControlObj.GridView, this.gridLeft.GridView);
dragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
_gridDragGrid?.Dispose();
_gridDragGrid = new GridDragGrid(this.ModuleGridObj.GridControlObj.GridView, this.gridLeft.GridView);
_gridDragGrid.OnDragComplete += new GridFragGridCompleteEventHandler(OnDragGridCompleted);
//配置了拖拽条件后,在点击时判断条件
dragGrid.DragConditions = this.SysModel.DragConditions;
_gridDragGrid.DragConditions = this.SysModel.DragConditions;
}
break;
@@ -504,8 +529,9 @@ namespace Lskj.Control
if (Model.HasOperPrivilege() && model.IsBaseModule && !this.SysModel.IsTreeTable && this.ModuleGridObj.GridControlObj.GridView is BandedGridView&&(this.SysModel.MenuType==2 || this.SysModel.MenuType==5))
{
// 有权限则允许拖拽
BandedGridDragGrid BandedDragGrid = new BandedGridDragGrid(this.ModuleGridObj.GridControlObj.GridView as BandedGridView, this.gridLeft.GridView);
BandedDragGrid.OnDragComplete += new BandedGridFragGridCompleteEventHandler(OnDragBandedGridCompleted);
_bandedGridDragGrid?.Dispose();
_bandedGridDragGrid = new BandedGridDragGrid(this.ModuleGridObj.GridControlObj.GridView as BandedGridView, this.gridLeft.GridView);
_bandedGridDragGrid.OnDragComplete += new BandedGridFragGridCompleteEventHandler(OnDragBandedGridCompleted);
}
}
@@ -2122,6 +2148,15 @@ namespace Lskj.Control
}
}
/// <summary>
/// 控件销毁后释放拖拽辅助对象;关闭被取消时不会触发,不影响模块继续使用。
/// </summary>
private void OnModuleExDisposed(object sender, EventArgs e)
{
this.Disposed -= OnModuleExDisposed;
ReleaseResourcesForDispose();
}
/// <summary>
/// 初始化页签