0

请我在这个问题上需要帮助。我有一个带按钮的动态菜单。每个按钮都有表单名称(VP,VZPAL,PAL,...)。当我单击某个按钮时,我想激活与该按钮具有相同名称的表单。我尝试使用此代码执行此操作,但它的转义有异常:

值不能为空。

string Formname = "FISpanel.Form" + b.Name.ToUpper().ToString();
Form frm =  (Form)Activator.CreateInstance(Type.GetType(Formname));
frm.Show();

Formname 的值是。有right(FISpanel.FormVP)什么想法吗?

4

1 回答 1

2

这就是我过去实现相同目标的方式。在我的应用程序中,我在 .ini 文件中设置了“链接”,但每个用户的链接可能不同,所以(像你一样),我需要一个解决方案,可以根据点击的内容启动表单:

        LinkLabel lnk = (LinkLabel)sender;

        Type type = Type.GetType("Valhalla." + lnk.Tag.ToString());
        Form thisFrm = (Form)Activator.CreateInstance(type);

        // DISPLAY THE FORM //
        thisFrm.ShowDialog();

此外,正如@King King 所提到的。点非常重要。您的表单实际上是命名为:“FormVP”还是只是“VP”(等等......)如果是后者,那么您将不得不将它们称为:Form.VP 而不是 FormVP。

于 2013-06-24T14:54:43.563 回答