用户点击网格中的一行。该行是一个包含表单名称的字符串。我检索字符串,现在想要显示表单。这是我的代码。
string formToEdit = EditFormsGrid[EditFormsGrid.RowSel, 0].ToString();
using (var form = ((Form)Activator.CreateInstance()))
{
if (form.ShowDialog() == DialogResult.OK)
{
}
}
如何从字符串formToEdit中获取能够打开它引用的表单
离。 string =" BatchEditForm"
还会调用默认构造函数,例如BatchEditForm()?
答案 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
替换为表单的名称(字符串格式)。