c# winform 反射 动态创建窗口
听说用反射可以实现动态创建窗口比如在textBox中输入A,点击按钮,弹出A窗口,同理可弹出B和C窗口。请教高手如何实现!...
听说用反射可以实现动态创建窗口比如在textBox中输入A,点击按钮,弹出A窗口,同理可弹出B和C窗口。请教高手如何实现!
展开
4个回答
2013-04-10
展开全部
你获取textBox的值,然后if..else if.. else做个判断~!然后实例化不同的窗口就行了~!写个例子:string a=this.textbox.text;if(a==“A”){ From1 f1=new From1(); f1.show();}else if(a=="B"){ From2 f2=new From2(); f2.show();}else if(a=="C"){ From3 f3=new From3(); f3.show();}else if...................else if.............else......
2013-04-10
展开全部
可以做个if语句 在Button单击事件里面这么写if(textBox1.text==A){ A a = new A(); a.Show();}else if(textBox1.text==B){ B b = new B(); b.Show();}else if(textBox1.text==C){ C c = new C(); c.Show();}else{ MessageBox.Show("error");}
你的里面 窗体的NAME属性是用的A.B.C吗?? 是的就是这个,不是就把ABC改为你窗体NAME属性里面的名字就可以了! 你重新创建窗体,不管怎么样,你都要使用这个做判断。
你的里面 窗体的NAME属性是用的A.B.C吗?? 是的就是这个,不是就把ABC改为你窗体NAME属性里面的名字就可以了! 你重新创建窗体,不管怎么样,你都要使用这个做判断。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实很简单,从当前执行的程序集中,动态创建一个Form对象
Assembly assembly = Assembly.GetExecutingAssembly();
Form f = assembly.CreateInstance("XXXXXX") as Form;
XXXXX是对象的类型 命名空间 + 类名
Assembly assembly = Assembly.GetExecutingAssembly();
Form f = assembly.CreateInstance("XXXXXX") as Form;
XXXXX是对象的类型 命名空间 + 类名
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-10
展开全部
private void button1_Click(object sender, EventArgs e) { string formName = this.textBox1.Text; ObjectHandle objectHandle = Activator.CreateInstance(null, formName); Form form = (Form)objectHandle.Unwrap(); form.ShowDialog();
} 这是通过反射动态创建窗体的方法。在文本框中要将窗体类的完整名称写出来,包括命名空间,否则创建会失败。如果不想输入命名空间,可以将命名空间硬编码到代码中。
} 这是通过反射动态创建窗体的方法。在文本框中要将窗体类的完整名称写出来,包括命名空间,否则创建会失败。如果不想输入命名空间,可以将命名空间硬编码到代码中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询