none
С++/CLR. Как создать компонент по имени класса? RRS feed

  • Вопрос

  • Как создать компонент по имени класса?

    Например вот так создаётся форма:

    Control^ form = gcnew System::Windows::Forms::Form();
    form->Show();

    Так кнопка:

    Control^ btn = gcnew System::Windows::Forms::Button();
    btn->Parent = form;

    А как создать компонент по имени? Например:

    String^ classname = "Form";

    Control^ obj = gcnew System::Windows::Forms::<classname>(); obj->show();

    Или есть какая-нибудь функция типа CreateControl(String^ ClassName)?

Ответы

Все ответы

  • Activator.CreateInstance(typeof("Form"));


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

  • Виноват, это на C#. На C++ будет так:

    Activator::CreateInstance(Form::typeid);


    Если сообщение помогло Вам, пожалуйста, не забудьте отметить его как ответ данной темы. Удачи в программировании!

  • Спасибо, вот только мне по строке нужно узнать typeid, а не по классу.

    Ну я примерно понял в какую сторону копать. Щас попробую повызывать что-то типа TypeConverter::ConvertFromString.