动态显示表单

本文关键字:表单 动态显示 | 更新日期: 2023-09-27 18:19:50

请帮我解决这个问题。我有一个带按钮的动态菜单。每个按钮都有表单的名称(VP,VZPAL,PAL,…)。当我点击某个按钮时,我想激活与该按钮同名的表单。我试着用这个代码来做,但它的转义有一个例外:

值不能为null。

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

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

动态显示表单

这就是我过去实现同样目标的方式。在我的应用程序中,我在.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。