您的位置:首页 > 其它

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

2007-05-29 13:17 495 查看
听朋友说动态加载窗体的方式很不错,今天试了下,原来专业术语叫反射.又张见识了,嘿嘿!



代码如下:


//通过程序集动态加载窗体


//解决方案名称"动态加载窗体",包含两个项目: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();




}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: