日期:2014-05-20  浏览次数:20796 次

▲▲▲Assembly加载的窗体如何为窗体的一个公共变量赋值 ▲▲▲
Assembly   assembly   =   Assembly.LoadFrom( "myDll.dll ");
Object   obj   =   assembly.CreateInstance( "myForm ");
Form   frm   =   obj   as   Form;
//这里我想为窗体的一个公共变量赋值,是字符型的,我怎么赋值啊
//frm.Name   =   "zsg ";这样肯定是错误的
frm.Show();
请大侠指点,多谢!

------解决方案--------------------
程序集中的Form某一个值设为属性或公有变量试下!
------解决方案--------------------
Form frm = assembly.CreateInstance( "myForm ");
//Form frm = obj as Form;
//这里我想为窗体的一个公共变量赋值,是字符型的,我怎么赋值啊
frm.Name = "zsg ";这样肯定是错误的
frm.Show();

这样呢?
------解决方案--------------------
object frm = assembly.CreateInstance( "myForm ");
//Form frm = obj as Form;
//这里我想为窗体的一个公共变量赋值,是字符型的,我怎么赋值啊
Type type = frm.GetType();
PropertyInfo property = type.GetProperty( "Name ");//你要的变量名。这里找的是属性,如果是变量的话Property换成Field
property.SetValue(frm, "zsg ");
frm.Show();//这里也不能直接用Show(),同样要找到名字为 "Show "的方法,然后再调用它

写的比较简略,具体的你查MSDN上Type,FieldInfo,MethodInfo,PropertyInfo等等就行了,容易看明白的。