转:回复人: timmy3310(Tim) ( ) 信誉:105  2003-4-18 17:14:47  得分:100 
 
 
  
必须输入完全限定名,也就是包括了命名空间的名字,当然你也可以自己把命名空间的名称加上去,然后:
string name = "TestNamespace.Form1";Form frm = (Form)Activator.CreateInstance( Type.GetType( name ) );frm.Show();

解决方案 »

  1.   

    System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
    Form fmCurrent = (Form)assembly.CreateInstance(strFmName);
      

  2.   

    我按两位的调用,总是提示:未将对象引用设置到对象实例(我是想在程序中动态调用菜单)string strMnuItemEventName = "menuItem" + i.ToString() + "_" + j.ToString();
    //MenuItem oMenuItem = (MenuItem)Activator.CreateInstance(Type.GetType,strMnuItemEventName)); 
    System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
    MenuItem oMenuItem = (MenuItem)assembly.CreateInstance(strMnuItemEventName);
    MessageBox.Show(this,oMenuItem.Text,"提示信息",
    MessageBoxButtons.OK,MessageBoxIcon.Information);
      

  3.   

    转 回复人: snewxf(心疤) ( ) 信誉:105  2003-4-20 20:45:57  得分:0 
     
     
      
    晕!不会我把题看错了吧!呵呵!
    假如这样的话:
    using System;
    public struct Point 
    {
    public  int x, y;
    public void print()
    {
    Console.Write("OK");
    }
    }class MainClass 
    {
    public static void Main() 
    {

    string className = "Point";

    Type classType = Type.GetType(className);
    //这里classType 总为null???

    Point obj = (Point)(Activator.CreateInstance(classType)); obj.print();
    }
    }
      

  4.   

    其中的classname必须是FullName形式的。
    string classNmae="System.Drawing.Point";
      

  5.   

    还是提示:未将对象引用设置到对象实例(我是想动态得到MenuItem)
    string name = "menuItem0_0";
    MenuItem oMenuItem = (MenuItem)Activator.CreateInstance(Type.GetType(name)); MenuItem 也必须输入完全限定名吗?如何表示?
      

  6.   

    你的意思好像是在运行中动态的得到某个菜单的对象?如果这样的话你可以对菜单进行遍历,找到名称是"menuItem0_0"的话不就找到了这个对象了吗。
      

  7.   

    menuItem0_0肯定要指出它的限定名的。