RT.
在FORM1中:string formName = "FORM2";//FORM2已有
Form form2 = (Form)formName;//当然这样是不行的,就是想实现这样的效果
form2.show();
我在网上查了一下,有一种反射的方法还没试不知道行不行:
Form f = (Form)System.Activator.CreateInstance(Type.GetType("你的命名空间.formName"));
f.Show();还有其他方法吗?
在FORM1中:string formName = "FORM2";//FORM2已有
Form form2 = (Form)formName;//当然这样是不行的,就是想实现这样的效果
form2.show();
我在网上查了一下,有一种反射的方法还没试不知道行不行:
Form f = (Form)System.Activator.CreateInstance(Type.GetType("你的命名空间.formName"));
f.Show();还有其他方法吗?
解决方案 »
- 100分请教各位一个串口数据显示问题,很急的!
- c#如何将excel嵌入到form?
- 用户端用http向服务器传送哦bject
- 怎么把<%#DataBinder.Eval(Container.DataItem, "name")%>的值存到变量中?
- 怎样让下面的输入框不可输入或者没有焦点?
- 关于使用windows帐户管理用户登录????
- 多个下拉框,共有数据问题
- 2个winform 程序 有可能传控件吗
- .net是不是不支持Adapter Sql AnyWhere 6.0数据库?急啊...
- DataSet里没有Invoke,如何用非主线程更新数据而不会出错?
- 正则表达式提取html中<input中的内容
- 谁告诉我c#类的知识
System.Windows.Forms.Form CreateForm(string FormName)
{
switch (FormName)
{
case "Form1":
return new Form1();
case "Form2":
return new Form2();
...
}
}
string name=strName; //类的名字
Form fm=(Form)Assembly.Load(path).CreateInstance(name);
fm.MdiParent=this.ParentForm;
fm.Show();string str = "Form1";
System.Reflection.Assembly tempAssembly = System.Reflection.Assembly.GetExecutingAssembly();
Form frm1 = (Form)tempAssembly.CreateInstance(str);
frm1.Show();
另外,除了反射的方法之外,我还真不知道还能用什么方法
第三,怎么做?MSDN!
都不应该发到CSDN上来
{
object o = new Form2();
Form a = (Form)o;
a.Show();
}
不知道是不是这效果,感觉和你要的比较像
如果你的FORM在当前程序集中,可以使用Assembly.GetExecutingAssembly获取当前程序集,然后反射调用其中的方法
如果是另一个程序集,可以使用Assembly.LoadFile 、Assembly.Load、Assembly.LoadFrom,这些都是静态方法
如何反射调用方法,参考System.Reflection.MethodInfo类