Создание нового экземпляра окна по типу строки - PullRequest
0 голосов
/ 04 мая 2010

Камарады,

У меня есть приложение WindowForm, которое содержит несколько форм, каждая с определенным именем.Ну, я хотел разработать класс, который управляет созданием этих окон, где через тип параметра экрана (ее имя) система создаст его для меня ...

Я думаю, что вСвойство "AcessibleName" в MenuItem, введите имя класса, который я хочу.Затем, чтобы щелкнуть по каждому элементу, система выполняет следующую проверку

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 ]

2 голосов
/ 04 мая 2010

Я бы посмотрел на метод Activator.CreateInstance, чтобы сделать именно то, что вы просите.

Однако я склонен спросить, нужно ли это вообще (основываясь на предоставленной вами информации). Допустим, у вас есть меню, которое содержит 3 пункта. Когда пользователь нажимает на MenuItem1, они представлены с Form1. Аналогично, MenuItem2-> Form2 и MenuItem3-> Form3. Почему бы вам просто не запустить формы напрямую? Какую пользу это дает вам?

0 голосов
/ 15 июня 2010

На самом деле, я делал что-то не так. Мне нужно поставить имя окна, включая его полный путь (пространство имен). Затем команда сработает, и тип будет идентифицирован.

Спасибо всем.

...