如何仅使用表单名称实例化和显示表单?

时间:2014-10-07 22:34:22

标签: c# winforms forms

我想在表单上显示一个网格,显示项目中的所有表单。用户将双击网格中的行以显示他们希望运行的表单。然后,我将获取表格的名称并显示。

通常,当我显示表单时,我会执行以下操作:

MemberEditForm form = new MemberEditForm();

if (form.ShowDialog() == DialogResult.OK)
{
   // do something if the user did not cancel the form
}

那么,如果表格的名称" MemberEditForm"我该如何做同样的事情?存储在名为formToDisplay?

的变量中

1 个答案:

答案 0 :(得分:0)

使用Activator.CreateInstance

var formType = Type.GetType("YourNameSpace.YourForm");

if (formType != null)
{
    using (var form = ((Form)Activator.CreateInstance(formType)))
    {
        if (form.ShowDialog() == DialogResult.OK)
        {
            // do something
        }
    }
}

这假设您在网格中存储了每个Form的完全限定名称,并且所有项目都是Form类型(而不是其他控件)。