我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
29 个解决方案
#1
//反射
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
#2
为什么要转换啊,
你就声明一个窗体,name = "form1"
不行么?
你就声明一个窗体,name = "form1"
不行么?
#3
Type _FormType = Type.GetType("WindowsApplication1.Form1");
Form _LoadForm = (Form)_FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
_LoadForm.Show();
Form _LoadForm = (Form)_FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
_LoadForm.Show();
#4
Assembly.Load("dll名称");
load什么呢?
load什么呢?
#5
学习了
#6
很好用!
#7
load 类 form1 所在的dll
#8
如果窗口在当前程序集,直接用GetExecutingAssembly()
void button1_Click(object sender, EventArgs e)
{
((Form)Activator.CreateInstance(System.Reflection.Assembly.GetExecutingAssembly().GetType("WindowsApplication52.Form1"))).ShowDialog();
}
#9
这个问题好.
#10
就是这样
#11
Assembly assem = Assembly.Load("mscorlib");//这写的对么?
Type myType = assem.GetType("frmReadIpAdr");
Object obj = Activator.CreateInstance(myType);//Bug :Value cannot be null.
// Parameter name: type
Form a = (Form)obj;
a.Show();
#12
你确定你load的 mscorlib 组件中有frmReadIpAdr这个类?
#13
因为我想做一个windows窗体类似的 后退到前一个窗体的 例子
我用list《string》 存储了所有打开的窗体名称,存储格式都是string,等后退打开的时候就需要转换成from类型,再显示或操作。
另外winform的后退操作有更简单的办法吗 ,继续求教
我用list《string》 存储了所有打开的窗体名称,存储格式都是string,等后退打开的时候就需要转换成from类型,再显示或操作。
另外winform的后退操作有更简单的办法吗 ,继续求教
#14
list里面直接存Form不就行了吗?不需要存什么string;另外如果是做Redo/Undo操作的话,最好使用堆栈,不用要list;可以实现“无限次”的Redo/Undo操作的;
#15
同一个程序里所有打开的窗体查阅Application.OpenForms数组
#16
反射,学习
#17
真晕,frmReadIpAdr,我这是窗体名。
#18
这个得挺麻烦.
#19
mscorlib是系统dll frmReadIpAdr是你自己的类
Type myType = assem.GetType("frmReadIpAdr");
你要从mscorlib中得到frmReadIpAdr类,当然返回的是null
所以才会有下面的情况
Object obj = Activator.CreateInstance(myType);//Bug :Value cannot be null.
Type myType = assem.GetType("frmReadIpAdr");
你要从mscorlib中得到frmReadIpAdr类,当然返回的是null
所以才会有下面的情况
Object obj = Activator.CreateInstance(myType);//Bug :Value cannot be null.
#20
string 类型转换成form类型 怎么做
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
这问题问的。。。。。。。。。。。。。。。。。。。。
我追加一个,我电脑里16M的程序,怎么把它转化为我银行的存款啊。
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
这问题问的。。。。。。。。。。。。。。。。。。。。
我追加一个,我电脑里16M的程序,怎么把它转化为我银行的存款啊。
#21
#22
加载程序集的关键字
#23
#24
感谢大家的回答 问题解决
顺带鄙视底楼zhoukang0916
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
顺带鄙视底楼zhoukang0916
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
#25
看错了 是20喽~
zhoukang0916 不好意思
zhoukang0916 不好意思
#26
string 类型转换成form类型
帖子名字起的不好,会让人误解。
string 类型转换成form类型 怎么做
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
例子举的不好,即使你要说的是类型反射,也不应该这样举例,特别是form1,不是FORM类型。
LZ你是新手,也不好说什么。
你仔细看看别人的回复:多少人被你的FORM1误导了,问题都阐述不清楚,该反省才对。
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
说句不好听的话,没人BS你,就不会有进步的压力。
帖子名字起的不好,会让人误解。
string 类型转换成form类型 怎么做
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
例子举的不好,即使你要说的是类型反射,也不应该这样举例,特别是form1,不是FORM类型。
LZ你是新手,也不好说什么。
你仔细看看别人的回复:多少人被你的FORM1误导了,问题都阐述不清楚,该反省才对。
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
说句不好听的话,没人BS你,就不会有进步的压力。
#27
谢谢猴子教导啊
bs我菜我不反对 但大家都是出来问和回答问题来的 不是让某些人出来说风凉话还不办事的 会帮大家解决 不会别说话 帮忙顶下
也好 bs我 然后还帮我解决问题 我还是谢谢你 用你的话说 我进步了
你的做法 还是让我狠狠的bs 谢谢
我的问题问的不好 不过貌似20楼以上好多回答都是对的 不知道别人理解能力怎么这么好 还是你个人有问题
最后不要抄袭别人的答案给自己脸上增加光彩
bs我菜我不反对 但大家都是出来问和回答问题来的 不是让某些人出来说风凉话还不办事的 会帮大家解决 不会别说话 帮忙顶下
也好 bs我 然后还帮我解决问题 我还是谢谢你 用你的话说 我进步了
你的做法 还是让我狠狠的bs 谢谢
我的问题问的不好 不过貌似20楼以上好多回答都是对的 不知道别人理解能力怎么这么好 还是你个人有问题
最后不要抄袭别人的答案给自己脸上增加光彩
#28
好吧,以后你就这样下去吧。指望别人理解能力都很好,都知道你要说的和你写的有点差别。
#29
问一下楼主怎么解决的,急用,谢谢
#1
//反射
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
#2
为什么要转换啊,
你就声明一个窗体,name = "form1"
不行么?
你就声明一个窗体,name = "form1"
不行么?
#3
Type _FormType = Type.GetType("WindowsApplication1.Form1");
Form _LoadForm = (Form)_FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
_LoadForm.Show();
Form _LoadForm = (Form)_FormType.InvokeMember(null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, null);
_LoadForm.Show();
#4
Assembly.Load("dll名称");
load什么呢?
load什么呢?
#5
学习了
#6
很好用!
#7
load 类 form1 所在的dll
#8
如果窗口在当前程序集,直接用GetExecutingAssembly()
void button1_Click(object sender, EventArgs e)
{
((Form)Activator.CreateInstance(System.Reflection.Assembly.GetExecutingAssembly().GetType("WindowsApplication52.Form1"))).ShowDialog();
}
#9
这个问题好.
#10
就是这样
#11
Assembly assem = Assembly.Load("mscorlib");//这写的对么?
Type myType = assem.GetType("frmReadIpAdr");
Object obj = Activator.CreateInstance(myType);//Bug :Value cannot be null.
// Parameter name: type
Form a = (Form)obj;
a.Show();
#12
你确定你load的 mscorlib 组件中有frmReadIpAdr这个类?
#13
因为我想做一个windows窗体类似的 后退到前一个窗体的 例子
我用list《string》 存储了所有打开的窗体名称,存储格式都是string,等后退打开的时候就需要转换成from类型,再显示或操作。
另外winform的后退操作有更简单的办法吗 ,继续求教
我用list《string》 存储了所有打开的窗体名称,存储格式都是string,等后退打开的时候就需要转换成from类型,再显示或操作。
另外winform的后退操作有更简单的办法吗 ,继续求教
#14
list里面直接存Form不就行了吗?不需要存什么string;另外如果是做Redo/Undo操作的话,最好使用堆栈,不用要list;可以实现“无限次”的Redo/Undo操作的;
#15
同一个程序里所有打开的窗体查阅Application.OpenForms数组
#16
反射,学习
#17
真晕,frmReadIpAdr,我这是窗体名。
#18
这个得挺麻烦.
#19
mscorlib是系统dll frmReadIpAdr是你自己的类
Type myType = assem.GetType("frmReadIpAdr");
你要从mscorlib中得到frmReadIpAdr类,当然返回的是null
所以才会有下面的情况
Object obj = Activator.CreateInstance(myType);//Bug :Value cannot be null.
Type myType = assem.GetType("frmReadIpAdr");
你要从mscorlib中得到frmReadIpAdr类,当然返回的是null
所以才会有下面的情况
Object obj = Activator.CreateInstance(myType);//Bug :Value cannot be null.
#20
string 类型转换成form类型 怎么做
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
这问题问的。。。。。。。。。。。。。。。。。。。。
我追加一个,我电脑里16M的程序,怎么把它转化为我银行的存款啊。
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
这问题问的。。。。。。。。。。。。。。。。。。。。
我追加一个,我电脑里16M的程序,怎么把它转化为我银行的存款啊。
#21
#22
加载程序集的关键字
#23
#24
感谢大家的回答 问题解决
顺带鄙视底楼zhoukang0916
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
顺带鄙视底楼zhoukang0916
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
#25
看错了 是20喽~
zhoukang0916 不好意思
zhoukang0916 不好意思
#26
string 类型转换成form类型
帖子名字起的不好,会让人误解。
string 类型转换成form类型 怎么做
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
例子举的不好,即使你要说的是类型反射,也不应该这样举例,特别是form1,不是FORM类型。
LZ你是新手,也不好说什么。
你仔细看看别人的回复:多少人被你的FORM1误导了,问题都阐述不清楚,该反省才对。
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
说句不好听的话,没人BS你,就不会有进步的压力。
帖子名字起的不好,会让人误解。
string 类型转换成form类型 怎么做
我现在有一个string类型的参数
string a =“form1”;
我怎么操作才能实现
a 转换成 form类型 实现 a.show();等form的操作
例子举的不好,即使你要说的是类型反射,也不应该这样举例,特别是form1,不是FORM类型。
LZ你是新手,也不好说什么。
你仔细看看别人的回复:多少人被你的FORM1误导了,问题都阐述不清楚,该反省才对。
Assembly assem = Assembly.Load("dll名称");
Type myType = assem.GetType("form1");
Object obj = Activator.CreateInstance(myType);
Form a = (Form)obj;
a.Show();
问题都不明白瞎装,会就回答 不会就眯着 得瑟什么
说句不好听的话,没人BS你,就不会有进步的压力。
#27
谢谢猴子教导啊
bs我菜我不反对 但大家都是出来问和回答问题来的 不是让某些人出来说风凉话还不办事的 会帮大家解决 不会别说话 帮忙顶下
也好 bs我 然后还帮我解决问题 我还是谢谢你 用你的话说 我进步了
你的做法 还是让我狠狠的bs 谢谢
我的问题问的不好 不过貌似20楼以上好多回答都是对的 不知道别人理解能力怎么这么好 还是你个人有问题
最后不要抄袭别人的答案给自己脸上增加光彩
bs我菜我不反对 但大家都是出来问和回答问题来的 不是让某些人出来说风凉话还不办事的 会帮大家解决 不会别说话 帮忙顶下
也好 bs我 然后还帮我解决问题 我还是谢谢你 用你的话说 我进步了
你的做法 还是让我狠狠的bs 谢谢
我的问题问的不好 不过貌似20楼以上好多回答都是对的 不知道别人理解能力怎么这么好 还是你个人有问题
最后不要抄袭别人的答案给自己脸上增加光彩
#28
好吧,以后你就这样下去吧。指望别人理解能力都很好,都知道你要说的和你写的有点差别。
#29
问一下楼主怎么解决的,急用,谢谢