SCM子系统可以实例化多个子页签工作台Bug

解决办法:
- BaseModule项目同级目录下新增SCM.BaseModule项目
- 在ClientMainUIImpl项目中引用SCM.BaseModule.dll
- 在ClientMainUIImpl -> MainForm.cs -> MainForm_MdiChildActivate修改如下
private void MainForm_MdiChildActivate(object sender, EventArgs e){//1、获取到当前激活的窗体//2、判断激活窗体的MyMdiChildForm 是否为null,或者disposed,否则激活那一个if (null == this.ActiveMdiChild) return;if (this.ActiveMdiChild.GetType().FullName.StartsWith("BaseModule.CompositeGenericForm`2")|| this.ActiveMdiChild.GetType().FullName.StartsWith("SCM.BaseModule.CompositeGenericForm`2")){PropertyInfo pi = this.ActiveMdiChild.GetType().GetProperty("frmList");object obj = pi.GetValue(this.ActiveMdiChild, null);if(obj is PopupModalChildFormBase){PopupModalChildFormBase baseForm = obj as PopupModalChildFormBase;if (null != baseForm.MyMdiChildForm && !baseForm.MyMdiChildForm.IsDisposed){baseForm.MyMdiChildForm.Activate();}}else if (obj is SCM.BaseModule.PopupModalChildFormBase){SCM.BaseModule.PopupModalChildFormBase baseForm = obj as SCM.BaseModule.PopupModalChildFormBase;if (null != baseForm.MyMdiChildForm && !baseForm.MyMdiChildForm.IsDisposed){baseForm.MyMdiChildForm.Activate();}}}else if (this.ActiveMdiChild is PopupModalChildFormBase){PopupModalChildFormBase baseForm = this.ActiveMdiChild as PopupModalChildFormBase;if (null != baseForm.MyMdiChildForm && !baseForm.MyMdiChildForm.IsDisposed){baseForm.MyMdiChildForm.Activate();}}}
PS:详见https://data.shengjingyun.com/svn/iWMSKeHu/iWMSV5.0.0SP1卡尔美版本:29395
文档更新时间: 2021-09-16 10:53 作者:谢伟凡