如何使用字符串作为表单名称来显示表单

时间:2014-10-10 23:15:56

标签: c# windows

用户点击网格中的一行。该行是一个包含表单名称的字符串。我检索字符串,现在想要显示表单。这是我的代码。

    string formToEdit = EditFormsGrid[EditFormsGrid.RowSel, 0].ToString();

        using (var form = ((Form)Activator.CreateInstance()))
        {
            if (form.ShowDialog() == DialogResult.OK)
            {
            }
        }

如何从字符串formToEdit中获取能够打开它引用的表单

离。 string =" BatchEditForm"

还会调用默认构造函数,例如BatchEditForm()?

2 个答案:

答案 0 :(得分:0)

使用Type.GetType()从字符串中获取Type,而不是使用GetConstructor来获取所需的构造函数。 (您可以调用默认构造函数或任何其他构造函数)

答案 1 :(得分:0)

我知道这是一个老问题,但是由于没有被接受的答案,我将发布自己的问题:

这就是您所需要的;

var form_to_open = (Form)Activator.CreateInstance(Type.GetType("YourNameSpace.YourFormName"));
form_to_open.Show();

别忘了,您需要将YourNameSpace替换为项目的实际名称空间,并将YourFormName替换为表单的名称(字符串格式)。