Office-C#-Winform利用Assembly反射动态打开项目中已存在的窗体
//添加对Reflection程序集引用 using System.Reflection; // 引用窗体创建方法CreateForm,传入参数 private void btnCreateForm_Click(object sender, EventArgs e) { //项目中已有的窗体名称、项目命名空间 CreateForm("testForms", "UseAssemblyToCreateForms"); } /// <summary> /// 1.stringFormName,要创建的窗体名称 /// 2.path,引用程序集名称 /// 3.Assembly.Load(path),该方法加载程序集 /// 4.Assembly.Load(path).CreateInstance(strName),通过传入窗体名称创建窗体,窗体名称需为 :程序集路径.窗体名称 /// </summary> /// <param name="stringFormName"></param> /// <param name="path"></param> private void CreateForm(string stringFormName,string path) { string strName = "UseAssemblyToCreateForms.UI." + stringFormName; string assemblyPath = path; Form form =(Form) Assembly.Load(assemblyPath).CreateInstance(strName); form.Show(); }
//方法二: private void button2_Click(object sender, EventArgs e) { Assembly assem = Assembly.Load(this.GetType().Namespace.ToString()); //取得当前Form名称 string formname = this.GetType().Namespace.ToString() + "." + "Form_TreeView"; //对Form进行实例化(formname = 命名空间.项目中已有的窗体名称) Form frm = (Form)assem.CreateInstance(formname); frm.ShowDialog(); }
分类:
OFFICE
posted on 2022-02-21 11:11 Violin_Huang 阅读(214) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具