抱歉,说得不是很清楚,应该是:
我的windows窗体名称全部放在数据表中,有100多个,我要根据当前行的保存的窗体名称,打开这个窗体,但我不想用Case语句,有什么简单的方法

解决方案 »

  1.   

    不用CASE的话,没有其它更好的方法了!因为字段的值又不能直接做为控件名称来调用!
      

  2.   

    Form aForm = System.Reflection.Assembly.GetType(YourFormName);
    这种方法只能把返回的对象当做Form使用。
      

  3.   

    方法一:
    System.Reflection.Assembly assembly;
    assembly = System.Reflection.Assembly.GetExecutingAssembly();
    //FormClassStr 是你窗体所属的类名,也是你可以保存在数据库中
    Form AppForm = (Form)assembly.CreateInstance("myNameSpace." + FormClassStr);
    Form.Show();
    方法二,窗体在制定的打包好的类库中:
    System.Reflection.Assembly assembly;
    assembly = System.Reflection.Assembly.LoadFrom(Application.StartupPath + "\\" + FormDllNameStr);
    //FormClassStr 是你窗体所属的类名,也是你可以保存在数据库中
    Form AppForm = (Form)assembly.CreateInstance("myNameSpace." + FormClassStr);
    Form.Show();
      

  4.   

    补充说明,我在winApp中通过,WebApp中没有尝试