Я хочу знать, можно ли динамически загружать пользовательские элементы управления?
Это код, чтобы показать, что я имею в виду:
C# Winform динамически загружает usercontrols по имени
public void Load()
{
Reset();
if (_host.User == null)
return;
int _count = 0;
String[] _applications = _host.User.Applications;
if (_applications == null)
return;
foreach (String _application in _applications)
{
TabPage _page = null;
switch (_application)
{
case "SF01":
_page = new TabPage();
_page.Text = "SF01";
_page.Controls.Add(new SF01(_container));
break;
}
if (_page != null)
{
tapplications.TabPages.Add(_page);
m_list.Add(_count, _page);
_count++;
}
}
tapplications.TabPages.Add(tlog);
if (_host.User.Admin)
tapplications.TabPages.Add(tadmin);
_container.Controls.Add(this);
}
Как вы можете видеть SF01
мой UserControl.
Теперь, как я могу загрузить другие usercontrols по имени вместо жесткого ввода объекта класса?
Таким образом, я могу создать больше приложений и забыть о том, как их загрузить. (case "SF01":
)
Все приложения будут находиться под папкой проекта applications
, возможно, есть способ перебрать эту папку проекта?
Если вы пытаетесь ускорить разработку, вы должны предварительно определить формы, соответствующие вашему стилю, и создать элементы управления, которые дополняют вашу функциональность. Поскольку использование элементов управления загрузкой является шагом назад с точки зрения удобочитаемости и крутой кривой обучения. – Measuring
Согласен, но это невозможно (я думаю) в этом случае. Пользователь регистрируется с помощью веб-службы, а класс приложения получает список всех приложений, которые пользователь может запустить. Все это происходит в 1 форме. Мне нужно найти способ перевести String [] _приложения в типы пользовательских элементов управления ... – grmbl