按字符串类型创建窗口的新实例

时间:2010-05-04 14:44:42

标签: winforms c#-3.0 c#-2.0

Camarades,

我有一个WindowForm应用程序,它包含多个表单,每个表单都有一个特定的名称。好吧,我想开发一个管理这些窗口创建的类,通过参数类型的屏幕(她的名字),系统为我创建一个...

我正在考虑MenuItem中的属性“AcessibleName”,把我想要的类的名称。然后单击每个项目,系统将执行以下验证

private void mnMenu_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {
        try
        {
            if (!String.IsNullOrEmpty(((MenuStrip)sender).AccessibleName))
            {
                string[] _Parametros = ((MenuStrip)sender).AccessibleName.Split(uConstantes.CtSeparadorMenu);
                uMenu.CreateWindow(((MenuStrip)sender).AccessibleName, _Parametros);
            }
        }
        catch (uException __Excp)
        {
            throw __Excp;
        }
    }

uMenu.CreateWindow,在类中,我会收到参数并实例化一个新对象,然后显示它。有谁有想法吗?反思解决了这个问题? (不幸的是,我对反思知之甚少)

由于

2 个答案:

答案 0 :(得分:2)

我会查看Activator.CreateInstance方法,专门针对您所要求的内容。

但是,我倾向于询问是否有必要(根据您提供的信息)。假设您有一个包含3个项目的菜单。当用户单击MenuItem1时,它们将显示Form1。同样,MenuItem2-> Form2和MenuItem3-> Form3。为什么不直接启动表单?这为您提供了什么好处?

答案 1 :(得分:0)

实际上,我做错了什么。我需要输入Window的名称,包括其完整路径(名称空间)。然后,该命令将起作用,并且将识别该类型。

谢谢大家。