怎麼用一個變量調用幾個不同的類。 object form=YourForm;((Form)form).Show(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我不是這個意思,並不是要通過object去調用不同的實體。我是想做個function接受一個字符串(各個窗體的名字),function通過這個字符串去顯示不同的窗體。 给你一段代码:test1.exe是你的应用程序textBox1.Text里输入要实例化的窗体类名"test1."是名字空间string inst="test1."+textBox1.Text;string AppPath= Directory.GetCurrentDirectory();string program=AppPath + @"\test1.exe";try{Assembly ls=Assembly.LoadFrom(program);object form= ls.CreateInstance(inst);(Form)form).Show();}catch(Exception err){MessageBox.Show(err.Message);} 你的意思不就是想显示指定的窗体吗?其实你不必传递字符串,直接传递窗体对象就可以了。函数中接收到这个窗体对象,就可以将其显示出来了。例如:你要显示的窗体都是FormTest类的话,你的函数就这样写:void FormShow(FormTest ff){ ff.Show();}当你想打开一个新的FormTest类的窗体时就可以这样调用:FormShow(new FormTest());这样就会打开一个新的FormTest窗体。如果你要打开的是不同的窗体,那么参数类型就用基类Form,如下:void FormShow(Form ff){ ff.Show();}这样你传入不同的窗体类型都可,如FormShow(new Form1());和FormShow(new Form2());都可以的。 to 7710703(易水寒):我是在不知道Form实体的情况下进行调用,窗体名我可以在另外的地方给。我用sheep2002的方法可以解决。不过也谢谢你! 请教Entity FrameWork自关联的问题 求正则表达式,详细教程找了好久论坛没有啊 SQL数据导入到Excel中 不显示删除回复显示所有回复显示星级回复显示得分回复 高分在线等:台式机的内存条可以互换用吗?[ c#如何将事件当做对象来传递? 如何给MainForm发一个消息??? 上传图片的代码,是哪错了? 请问,如何使用C#中的gridcontrol控件对数据库内容进行修改后保存,我绑定的是access数据库。谢谢 this.Close() 在 try//Catch{} 中不可用? 求关于c#操作视频的资料 请问C#的前途如何? 为什么我的打包程序不能在WIN XP下安装?
我是想做個function接受一個字符串(各個窗體的名字),function通過這個
字符串去顯示不同的窗體。
test1.exe是你的应用程序
textBox1.Text里输入要实例化的窗体类名
"test1."是名字空间string inst="test1."+textBox1.Text;
string AppPath= Directory.GetCurrentDirectory();
string program=AppPath + @"\test1.exe";
try
{
Assembly ls=Assembly.LoadFrom(program);
object form= ls.CreateInstance(inst);
(Form)form).Show();
}
catch(Exception err)
{
MessageBox.Show(err.Message);
}
void FormShow(FormTest ff)
{
ff.Show();
}
当你想打开一个新的FormTest类的窗体时就可以这样调用:
FormShow(new FormTest());
这样就会打开一个新的FormTest窗体。
如果你要打开的是不同的窗体,那么参数类型就用基类Form,如下:
void FormShow(Form ff)
{
ff.Show();
}
这样你传入不同的窗体类型都可,如
FormShow(new Form1());
和FormShow(new Form2());都可以的。
我是在不知道Form实体的情况下进行调用,窗体名我可以在另外的地方给。
我用sheep2002的方法可以解决。不过也谢谢你!