如果是在将“login"显示在窗口标題
Form f=new Form();
f.Text="login";
f.Show();
不知是这个意思吗?

解决方案 »

  1.   

    不是啊。
    我来解释一下
    string qq="login"; //我自己想动态定义从数据库里取值出来,有可能是要打开login或是qqmail之类的新窗口login f = new login(); //这里的login是新要打开的一个窗口这页的名就login
    f.MdiParent = this; 
    f.Show();不知我这样描述大家明白了没有
      

  2.   

    这下大概懂了,希望从字符串转换成类, 基本不可能只有用switch判断,也是写死的一种要不然在数据库存序列化的类,反序列化出来
      

  3.   

    没有那么复杂吧,
    只要给login类加一个属性不就可以了吗?public string qq {get;set;};在重载一个构造函数public login(string qq)
    {
    this.qq=qq;}
      

  4.   

    namespace MyLibrary
    {
    public class Class2
    {
    public int def;
    string  mstrName; public string Name
    {
    get
    {
    return mstrName;
    }
    set
    {
    mstrName=value;
    }
    } }
    public class Class3
    { public int ghi;
    int mint;
    public void Walk(int Distance)
    {
    mint += Distance;
    }

    } public class Class4
    {
    public  int jkl;
    }}这里面包括四个类,每个类有不同的成员,把它编译成DLL文件。现在再做一个Windows项目: 首先把MyLibrary.dll拷贝到当前目录下。代码: //对公共语言运行库中的模块执行反射操作 private void button1_Click(object sender, System.EventArgs e)
    {
    //我们现在要知道原始的基类Object的情况
    object b=new object(); //定义一个公共语言运行库的构造块:Assembly(装配)
    System.Reflection.Assembly a;

    //通过Module.Assembly使模块执行反射操作
    //说明:
    //b.GetType()为获取对象b的类型
                //Module为获取已经定义类型的模块(DLL)
    //Assembly为这个模块获取适当的Assembly a= (b.GetType()).Module.Assembly; int numInterfaces= 0;
    int numClasses= 0;
    int numArrays=0;
    int numValueTypes=0; listBox1.Items.Clear(); Type[] types= a.GetTypes();
     
    for(int i=0;i<types.Length;i++)
    {
    if (types[i].IsClass) 
    {
    numClasses++;
    listBox1.Items.Add(types[i].Name + "'");
    } //  listBox1.Items.Add("类"+i.ToString()+" "+types[i].FullName); // 类型不多,所以我们可以将它们全部输出
                    
    if (types[i].IsValueType) numValueTypes++;
                
    if (types[i].IsArray) numArrays++; if (types[i].IsInterface)
    {
    listBox1.Items.Add(types[i].Name + "'");   // 仅输出接口的名称
    numInterfaces ++;
    } }
    listBox1.Items.Add("类总数="+numClasses.ToString());
    listBox1.Items.Add("接口总数="+numInterfaces.ToString());
    listBox1.Items.Add("数据类型总数="+numValueTypes.ToString());
    listBox1.Items.Add("数组总数="+numArrays.ToString()); } //对独立的模块文件执行反射操作
    private void button2_Click(object sender, System.EventArgs e)
    {

    //我们现在要知道MyLibrary.dll的情况

    System.Reflection.Assembly a; //通过调入文件执行反射操作 a=System. Reflection.Assembly.LoadFrom("MyLibrary.dll");

    Type[] types= a.GetTypes();
    listBox1.Items.Clear();
    for(int i=0;i<types.Length;i++)
    {
    listBox1.Items.Add("类"+i.ToString()+" "+types[i].FullName); // 类型不多,所以我们可以将它们全部输出
                    
    //FieldInfo发现字段特性并提供字段元数据的访问权
    System.Reflection.FieldInfo[] fi;
    fi = types[i].GetFields(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public);
    for(int j=0;j<fi.Length;j++)
    {
    listBox1.Items.Add(fi[j].Name);
    }             //注释掉的部分为显示方法 /*
    //MethodInfo发现方法特性并提供方法的访问权
    System.Reflection.MethodInfo[] Mfi;
    Mfi = types[i].GetMethods(System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public);
    for(int j=0;j<Mfi.Length;j++)
    {
    listBox1.Items.Add(Mfi[j].Name);
    }
    */
    }
    }
      

  5.   

    把你的email地址发出来吧!给你一个反射的资料。
      

  6.   

    我邮件[email protected],谢谢各位啊。
      

  7.   


    {get;set;}; 这东东是不是只有VS08才有的啊,我的05编译会报错啊
      

  8.   

    17楼没看懂你的意思。
    你想的是,读取一个字符串,可以直接获取对应名字的类的实例。
    这个不可能,唯一方法是把这个新form放在一个dll里,然后动态读取,获得这个类。