HIS系统中关于动态菜单加载、反射技术的研究
HIS是专为中国数字化医院建设而精心设计的大型集成信息管理平台,系统由一百多位科研工作者凝结14年行业经验精心打造而成,包括门诊、住院、药库(房)、医嘱、医生站、护士站、总务、设备、人事、工资、财务、病案、统计、触摸屏、动态床位、急救120、院长查询、电子病历、病案、PAS、LIS、合理用药等30多个子项目,关于HIS系统中动态菜单加载、反射技术进行了一些研究,希望能够对大家的学习有一定的帮助。
完整的代码下载:/Files/0771bc/动态菜单加载反射技术.rar
首先我们要实现: 泛型集合List的用法?无限分类实现思路?这2个思路如何去实现呢
使用第三方控件WinFormsUI.Docking.dll;
他是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠、拖拽等功能。该项目下载地址:http://sourceforge.net/projects/dockpanelsuite
新建一个窗体,在工具箱上右键—>选择项,找到WeifenLuo.WinFormsUI.Docking.dll;
将dockPanel拖到窗体Form1上 ;
设置Form1的IsMdiContainer属性为true,表示该窗体是一个父窗体;
在代码中修改窗体继承于DockContent,如public partial class Form2 : DockContent ;
然后显示子窗体,如:Form2 frm= new Form2();
frm.Show(this.dockPanel1);
加载菜单信息
DataRow[] drs = dt.Select("ParentNodeId = 0");
foreach (DataRow dr in drs)
{
BarSubItem barSubItem = new BarSubItem(barManager, dr[“DisplayName mainMenu.InsertItem(mainMenu.ItemLinks[mainMenu.ItemLinks.Count - 1], barSubItem);
foreach (DataRow item in dt.Rows)
{
if (dr["NodeId"]== item["ParentNodeId"])//属于该节点
{
BarItem barSmallItem = new BarButtonItem(barManager, item["DisplayName"]);//创建一个子菜单
barSubItem.AddItem(barSmallItem); barSmallItem.ItemClick += new ItemClickEventHandler(DllPlugInItemClick);
plugins.Add(已经产生的菜单信息加入集合);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库