如何根据string变量,动态创建windows Form

bati_mfl 2004-07-14 08:20:43
如:
有二个windows Form命名为MyForm,YourForm
如何动态创建它们

string sFormName;

sFormName="MyForm";

如何用sFormName创建它们,实现相似功能
MyForm Form1=new MyForm();


...全文
113 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bati_mfl 2004-07-14
  • 打赏
  • 举报
回复
搞定了,sFormName中要加入namespace
bati_mfl 2004-07-14
  • 打赏
  • 举报
回复
System.Type.GetType(sFormName)为是么未定义值
bati_mfl 2004-07-14
  • 打赏
  • 举报
回复
peterli1976(汗颜):
下句出错
Form formtest = (Form)System.Activator.CreateInstance(System.Type.GetType(sFormName));



未处理的“System.ArgumentNullException”类型的异常出现在 mscorlib.dll 中。

其他信息: 值不能为空。
lxcc 2004-07-14
  • 打赏
  • 举报
回复
说的原理!
bati_mfl 2004-07-14
  • 打赏
  • 举报
回复
peterli1976(汗颜)好象蛮对的,我去试试
bati_mfl 2004-07-14
  • 打赏
  • 举报
回复
lxcc(虫子)
你说的是利用反射类调用类成员
而我要的是,根据字符串变量创建相关类的实列
peterli1976 2004-07-14
  • 打赏
  • 举报
回复
sFormName="MyForm";
Form formtest = (Form)System.Activator.CreateInstance(System.Type.GetType(sFormName));
formtest.Show();

wolftop 2004-07-14
  • 打赏
  • 举报
回复
不行!~
bati_mfl 2004-07-14
  • 打赏
  • 举报
回复
qifanghcy(QiFang)你这种方法不可取!
我只是列了这两个Form,并不是只有这两个Form
我是从数据库中取的Form名字,创建Form
可能有几百个Form

不可能一一罗列
qifanghcy 2004-07-14
  • 打赏
  • 举报
回复
string sFormName;

sFormName = "Myform"
if (sFormName == "MyForm)
MyForm form1 = new MyForm();
else
YourForm form1 = new YourForm();
lxcc 2004-07-14
  • 打赏
  • 举报
回复
用反射作

http://dev.csdn.net/article/30713.shtm

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧