利用反射实现窗体动态加载

本文介绍了一种使用反射技术动态加载窗体的方法。通过.NET Framework中的`Activator.CreateInstance`和`Assembly.LoadFile`方法,可以从指定路径加载程序集,并实例化特定类型的窗体。该方法有助于提高软件的灵活性和可扩展性。

听朋友说动态加载窗体的方式很不错,今天试了下,原来专业术语叫反射.又张见识了,嘿嘿!

代码如下:

        //通过程序集动态加载窗体
        
//解决方案名称"动态加载窗体",包含两个项目:WindowsApplication1,WindowsApplication2.
        
//WindowsApplication1项目中,包含窗体Form1和Form2,Form1中有两个Button:button1,button2并有单击事件.
        
//WindowsApplication2项目中无改动.

        
//此事件显示当前项目(WindowsApplication1)中窗体Form2
        private void button1_Click(object sender, EventArgs e)
        
{
            
//路径表示要调用的程序集所在路径,可以是窗体生成的*.exe文件或者*.dll文件
            string path = Application.StartupPath + @"WindowsApplication1.exe";

            Form from2 
= null;
            
//WindowsApplication2.Form1表示命名空间WindowsApplication1下的窗体Form2
            from2 = (Form)Activator.CreateInstance(Assembly.LoadFile(path).GetType("WindowsApplication1.Form2"false), true);
            from2.Show();
        }


        
//此事件显示项目WindowsApplication2中窗体Form1
        private void button2_Click(object sender, EventArgs e)
        
{
            
string path = System.IO.Path.GetFullPath(@"......WindowsApplication2inDebugWindowsApplication2.exe");

            Form from1 
= null;
            from1 
= (Form)Activator.CreateInstance(Assembly.LoadFile(path).GetType("WindowsApplication2.Form1"false), true);
            from1.Show();

        }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值