/// <summary> /// 加载模块方法 /// </summary> /// <param name="msg">加载进度</param> /// <param name="moduleMenus">模块的菜单</param> public void LoadModules(IMsg msg, MenuStrip moduleMenus) { try { //加载Dev组件 ModuleLoadDevComponent loader = new ModuleLoadDevComponent(); _Modules = loader.GetModuleList(); //从运行目录中搜索模块文件 foreach (ModuleInfo m in _Modules) //枚举模块文件 { if (!loader.LoadModule(m)) { continue; //加载失败,继续Load下一个模块 } //当前模块是否分配了权限.(当前用户是否有这个模块的权限). //没有权限继续Load下一个模块 if (!loader.CanAccessModule(SystemAuthentication.UserAuthorities)) { loader.ClearAssemble(); continue; } _ModulesLoadSucceed.Add(loader.ModuleMainForm); //保存已加载的模块 msg.UpdateMessage("正在加载:" + loader.GetCurrentModuleName()); //显示加载进度 loader.LoadGUI(_tabControlModules); //将模块的功能按钮容器集成到主窗体的TabControl内 loader.LoadMenu(moduleMenus); //加载模块的菜单,集成到主窗体的主菜单内 (loader.ModuleMainForm as Form).MdiParent = _MDIMainForm; //模块的主窗体也作为一个子窗体, 设置父窗体. } GC.Collect();//加载模块消耗内存,及时回收部分内存 } catch (Exception ex) { Msg.ShowException(ex); } }
/// <summary> /// 初始化MDI主窗体,在登录窗体显示加载状态。 /// </summary> /// <param name="splash">登录窗体上的进度显示组件</param> public void InitUserInterface(IMsg splash) { try { this.SuspendLayout(); splash.UpdateMessage("正在初始化用户界面..."); this._MdiToolbar = new DevBarRegister(this, this.barToolButtons); this.RegisterMdiButtons(); splash.UpdateMessage("下载基础数据..."); CommonData.GetCommonInfos(); //获取其它公共数据 DataDictCache.RefreshCache(); splash.UpdateMessage("正在初始化模块容器..."); _ModuleContainer = (frmModuleContainer)MdiTools.OpenChildForm(this as IMdiForm, typeof(frmModuleContainer), null); _ModuleContainer.InitButtons(); splash.UpdateMessage("正在加载模块..."); _ModuleManager = new ModuleManager(this, _ModuleContainer.xtraTabControl1); //创建模块管理器 _ModuleManager.LoadModules(splash, _moduleMenus); //加载可用模块 splash.UpdateMessage("正在初始化用户权限..."); SystemAuthentication.SetMenuAuthority(_moduleMenus); _ModuleManager.SetModuleSecurity(_moduleMenus); splash.UpdateMessage("正在加载工具栏(Toolbar)..."); _ModuleManager.CreateToolButtons(barMainMenu, _moduleMenus); splash.UpdateMessage("正在加载导航面板(Navigator Panel)..."); _ModuleManager.CreateNavBarButtons(this.navBarControl1, _moduleMenus, NavigatorStyle.BarContainer); //创建导航工具栏按钮 splash.UpdateMessage("加载完毕."); this.ResumeLayout(); } catch (Exception ex) { Msg.ShowException(ex); } }
/// <summary> /// 加载模块方法 /// </summary> /// <param name="msg">加载进度</param> /// <param name="moduleMenus">模块的菜单</param> public void LoadModules(IMsg msg, MenuStrip moduleMenus) { try { //加载Dev组件 ModuleLoadDevComponent loader = new ModuleLoadDevComponent(); _Modules = loader.GetModuleList();//从运行目录中搜索模块文件 foreach (ModuleInfo m in _Modules) //枚举模块文件 { if (!loader.LoadModule(m)) continue; //加载失败,继续Load下一个模块 //当前模块是否分配了权限.(当前用户是否有这个模块的权限). //没有权限继续Load下一个模块 if (!loader.CanAccessModule(SystemAuthentication.UserAuthorities)) { loader.ClearAssemble(); continue; } _ModulesLoadSucceed.Add(loader.ModuleMainForm);//保存已加载的模块 msg.UpdateMessage("正在加载:" + loader.GetCurrentModuleName());//显示加载进度 loader.LoadGUI(_tabControlModules); //将模块的功能按钮容器集成到主窗体的TabControl内 loader.LoadMenu(moduleMenus); //加载模块的菜单,集成到主窗体的主菜单内 (loader.ModuleMainForm as Form).MdiParent = _MDIMainForm; //模块的主窗体也作为一个子窗体, 设置父窗体. } GC.Collect();//加载模块消耗内存,及时回收部分内存 } catch (Exception ex) { Msg.ShowException(ex); } }
/// <summary> /// 初始化MDI主窗体,在登录窗体显示加载状态。 /// </summary> /// <param name="splash">登录窗体上的进度显示组件</param> public void InitUserInterface(IMsg splash) { try { this.SuspendLayout(); splash.UpdateMessage("正在初始化用户界面..."); this._MdiToolbar = new DevBarRegister(this, this.barToolButtons); this.RegisterMdiButtons(); splash.UpdateMessage("下载基础数据..."); CommonData.GetCommonInfos(); //获取其它公共数据 DataDictCache.RefreshCache(); splash.UpdateMessage("正在初始化模块容器..."); _ModuleContainer = (frmModuleContainer)MdiTools.OpenChildForm(this as IMdiForm, typeof(frmModuleContainer), null); _ModuleContainer.InitButtons(); splash.UpdateMessage("正在加载模块..."); _ModuleManager = new ModuleManager(this, _ModuleContainer.xtraTabControl1);//创建模块管理器 _ModuleManager.LoadModules(splash, _moduleMenus); //加载可用模块 splash.UpdateMessage("正在初始化用户权限..."); SystemAuthentication.SetMenuAuthority(_moduleMenus); _ModuleManager.SetModuleSecurity(_moduleMenus); splash.UpdateMessage("正在加载工具栏(Toolbar)..."); _ModuleManager.CreateToolButtons(barMainMenu, _moduleMenus); splash.UpdateMessage("正在加载导航面板(Navigator Panel)..."); _ModuleManager.CreateNavBarButtons(this.navBarControl1, _moduleMenus, NavigatorStyle.BarContainer); //创建导航工具栏按钮 splash.UpdateMessage("加载完毕."); this.ResumeLayout(); } catch (Exception ex) { Msg.ShowException(ex); } }