object form=YourForm;
((Form)form).Show();

解决方案 »

  1.   

    我不是這個意思,並不是要通過object去調用不同的實體。
    我是想做個function接受一個字符串(各個窗體的名字),function通過這個
    字符串去顯示不同的窗體。
      

  2.   

    给你一段代码:
    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);
    }
      

  3.   

    你的意思不就是想显示指定的窗体吗?其实你不必传递字符串,直接传递窗体对象就可以了。函数中接收到这个窗体对象,就可以将其显示出来了。例如:你要显示的窗体都是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());都可以的。
      

  4.   

    to 7710703(易水寒):
    我是在不知道Form实体的情况下进行调用,窗体名我可以在另外的地方给。
    我用sheep2002的方法可以解决。不过也谢谢你!