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

本文关键字:表单 显示 何使用 字符串 | 更新日期: 2023-09-27 18:26:10

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

    string formToEdit = EditFormsGrid[EditFormsGrid.RowSel, 0].ToString();
        using (var form = ((Form)Activator.CreateInstance()))
        {
            if (form.ShowDialog() == DialogResult.OK)
            {
            }
        }

我如何从字符串表单编辑到能够打开它引用的表单

前任。字符串="BatchEditForm"

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

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

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

我知道这是一个老问题,但没有公认的答案,我会发布我自己的:

这就是你所需要的;

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

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