fix: 收敛旧控件资源与后台线程生命周期
This commit is contained in:
@@ -152,6 +152,34 @@ namespace Lskj.Control
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Excel 控件包含 SpreadsheetControl、BarManager 和命令注册项,
|
||||
/// 普通表格模块不应在设计器初始化阶段创建这些重型资源。
|
||||
/// </summary>
|
||||
private ExcelControlEx EnsureExcelControl()
|
||||
{
|
||||
if (this.excelControlEx1 != null && !this.excelControlEx1.IsDisposed)
|
||||
{
|
||||
return this.excelControlEx1;
|
||||
}
|
||||
|
||||
this.excelControlEx1 = new ExcelControlEx
|
||||
{
|
||||
AddEnabled = true,
|
||||
DeleteEnabled = true,
|
||||
Dock = DockStyle.Fill,
|
||||
Margin = new Padding(6),
|
||||
Name = "excelControlEx1",
|
||||
PrintEnabled = true,
|
||||
SaveEnabled = true,
|
||||
TabIndex = 1,
|
||||
Visible = false
|
||||
};
|
||||
this.pl_right.Controls.Add(this.excelControlEx1);
|
||||
this.ExcelControlObj = this.excelControlEx1;
|
||||
return this.excelControlEx1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <para>说明:创建界面</para>
|
||||
/// <para>创建人:龚宇超</para>
|
||||
@@ -284,20 +312,22 @@ namespace Lskj.Control
|
||||
}
|
||||
if (this.IsExcel)
|
||||
{
|
||||
//由于创建对象时候要注册,所以动态构造这控件不在设计器进行否则表格模式也会弹出注册
|
||||
// 只有 Excel 模式才创建 Spreadsheet/Bar 相关资源。
|
||||
ExcelControlEx excelControl = EnsureExcelControl();
|
||||
this.ModuleGridDetailObj.Visible = false;
|
||||
this.repModelDetailEx.Visible = false;
|
||||
this.excelControlEx1.Visible = true;
|
||||
excelControl.Visible = true;
|
||||
excelControl.BringToFront();
|
||||
if (!Model.DataCaches.GetValue(this, "BasePrimaryKey", out SysModel.ParmaryKey))
|
||||
{
|
||||
SysModel.ParmaryKey = BaseImpl.GetBasePrimaryKey(this.Model.ModuleCode);
|
||||
}
|
||||
this.excelControlEx1.AddEnabled = this.SysModel.AddEnable;
|
||||
this.excelControlEx1.DeleteEnabled = this.SysModel.DeleteEnable;
|
||||
this.excelControlEx1.PrintEnabled = !string.IsNullOrWhiteSpace(this.SysModel.PrintFile);
|
||||
this.excelControlEx1.SaveEnabled = this.SysModel.ModifyEnable;
|
||||
this.excelControlEx1.CreateFile();
|
||||
this.excelControlEx1.SaveCallBack += new EventHandler(OnExcelSaveClick);
|
||||
excelControl.AddEnabled = this.SysModel.AddEnable;
|
||||
excelControl.DeleteEnabled = this.SysModel.DeleteEnable;
|
||||
excelControl.PrintEnabled = !string.IsNullOrWhiteSpace(this.SysModel.PrintFile);
|
||||
excelControl.SaveEnabled = this.SysModel.ModifyEnable;
|
||||
excelControl.CreateFile();
|
||||
excelControl.SaveCallBack += new EventHandler(OnExcelSaveClick);
|
||||
if (!Model.DataCaches.GetValue(this, "BaseGridColumns", out DataTable dtGridColumns))
|
||||
{
|
||||
dtGridColumns = BaseModuleImpl.GetBaseGridColumns(this.Model.ModuleCode);
|
||||
@@ -314,8 +344,10 @@ namespace Lskj.Control
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
this.excelControlEx1.Visible = false;
|
||||
if (this.excelControlEx1 != null)
|
||||
{
|
||||
this.excelControlEx1.Visible = false;
|
||||
}
|
||||
if (SysModel.isReplacMainDetail == "1")
|
||||
{
|
||||
this.ModuleGridDetailObj.Visible = false;
|
||||
|
||||
Reference in New Issue
Block a user