按字符串名称显示表单而不进行反射

本文关键字:反射 表单 字符串 显示 | 更新日期: 2023-09-27 18:00:04

我想知道是否可以在不使用反射的情况下按名称字符串动态显示表单。

按字符串名称显示表单而不进行反射

您的问题不清楚。但这就是你想要的:

if (form.Name == "name1") form.Show();

您可以使用这样一个巨大的switch语句:

switch (formName)
{
    case "form1":
        new Form1().Show();
        break;
    ...
}

并且相同的CCD_ 2语句将应用于工厂模式中。

但按照的思路做更多的事情肯定会干净得多

var o = Activator.CreateInstance(Type.GetType(formName));

默认情况下,Type.GetType(string)方法执行区分大小写的搜索,因此如果不起作用,您可以使用不同的重载Type.GetType(string, bool, bool),在其中您可以确定是否要忽略大小写。它可能看起来像这样:

var o = Activator.CreateInstance(Type.GetType(formName, true, false));