代码之家  ›  专栏  ›  技术社区  ›  Developer

加载不带实例的窗体

  •  0
  • Developer  · 技术社区  · 12 年前

    大家好,我想从 database ,我将表单名称存储为 Form1 在我的数据库中。现在我想在另一个表单按钮点击事件上获得这个表单名称。我尝试如下,将表单名称存储在字符串中,但我无法加载表单。有人能帮我吗

    string strFromName="Form1";
    Type type = Type.GetType(strFromName); // Null reference is coming here
    Form form = (Form)Activator.CreateInstance(type);
    
    2 回复  |  直到 12 年前
        1
  •  1
  •   PHeiberg    12 年前

    您必须提供表单的完全限定名称(“TopNamespace.SubNameSpace.Form1”),或者如果表单类位于调用之外的程序集中,则必须提供 AssemblyQualifiedName (“TopNamespace.SubNameSpace.Form1,MyAssembly”)。

    请参阅 Type.GetType 有关详细信息的文档。

        2
  •  1
  •   burning_LEGION    12 年前

    从程序集中获取所有类型,并在获取instatnce类型后按名称将实例与字符串“Form1”进行比较