Я пытаюсь создать элементы управления во время выполнения, используя Reflection.В моем случае я получаю строку типа Label или Button и хочу создать для нее объект Label или Button.
Assembly WinFormasm = Assembly.Load("System.Windows.Forms,Version=2.0.000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
Control label = (Control)Activator.CreateInstance(WinFormasm.GetType("System.Windows.Forms."+type));
При выполнении этого я получаю сообщение об ошибке:
Имя файла или сборки 'System.Windows.Forms, версия = 2.0.000.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089' или одна из его зависимостей не найдена.
Iне знаю, что там не так.Я также попытался:
try
{
Type cntrl = Type.GetType("System.Windows.Forms.Button,System.Windows.Forms, Culture=neutral, Version=2.0.0.0, PublicKeyToken=b77a5c561934e089", true);
label1.Text += cntrl.ToString() + " ";
}
catch(Exception e)
{
label1.Text += e.ToString() + " ";
}
При попытке получить ошибку выполнения: он не может создать тип и возвращает null
.Если я изменю строку gettype на System.Int32
, она будет работать.
Как создать элемент управления с использованием строки?