VB.net通过字符串打开引用类里面窗体 5

DimstrAsStringstr="myTest.Form2"'必须是命名空间+点+窗体类名DimtempAssemblyAsSystem.Reflection.Ass... Dim str As String
str = "myTest.Form2" '必须是 命名空间+点+窗体类名
Dim tempAssembly As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
Dim frm2 As Form = CType(tempAssembly.CreateInstance(str), Form)
frm2.Show()

但是,我在项目里面引用一个类(Test),里面有很多窗体。
怎样通过字符串打开引用类里面的窗体呢?
展开
 我来答
大明白戴夫
2013-03-26 · TA获得超过3609个赞
知道小有建树答主
回答量:1.5万
采纳率:0%
帮助的人:2083万
展开全部
昏暗的STR AsString
STR =“Form2的”命名空间+点+窗体类名(这里假设的命名空间为空)

昏暗的tempAssembly作为[大会] = [大会]。 GetExecutingAssembly()

昏暗的T作为类型tempAssembly.GetType(STR)

昏暗的args()AsObject =无

点心AsObject = System.Activator.CreateInstance(参数) CTYPE(O,Form2的)。显示()

STR引用测试类,而不是STR =“测试”,如果测试的命名空间是没有必要查看的是什么,然后改变为str =“命名空间测试
de98441201
2013-03-20 · TA获得超过153个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:197万
展开全部
Dim str AsString
str = "Form2" '必须是 命名空间+点+窗体类名(这里假设为命名空间为空)
Dim tempAssembly As [Assembly] = [Assembly].GetExecutingAssembly()
Dim t As Type = tempAssembly.GetType(str)
Dim args() AsObject = Nothing
Dim o AsObject = System.Activator.CreateInstance(t, args)
CType(o, Form2).Show()

因为你引用的是test类 str 那里改为str = "Test" 如果不行就要查看Test的命名空间是什么,然后改为str = "命名空间.test"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式