c# winform 反射 动态创建窗口

听说用反射可以实现动态创建窗口比如在textBox中输入A,点击按钮,弹出A窗口,同理可弹出B和C窗口。请教高手如何实现!... 听说用反射可以实现动态创建窗口比如在textBox中输入A,点击按钮,弹出A窗口,同理可弹出B和C窗口。请教高手如何实现! 展开
 我来答
匿名用户
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属性里面的名字就可以了! 你重新创建窗体,不管怎么样,你都要使用这个做判断。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狮是搞完泪18
推荐于2017-06-05 · TA获得超过270个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:259万
展开全部
其实很简单,从当前执行的程序集中,动态创建一个Form对象
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();
} 这是通过反射动态创建窗体的方法。在文本框中要将窗体类的完整名称写出来,包括命名空间,否则创建会失败。如果不想输入命名空间,可以将命名空间硬编码到代码中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式