Как сериализовать элемент управления .NET в CODE? - PullRequest
3 голосов
/ 10 февраля 2010

Я хочу создать форму .NET во время выполнения, добавить к ней кнопки и другие элементы управления (также во время выполнения), а затем иметь возможность создать файл нечто.designer.cs из этой формы (который затем можно добавить решение C # и скомпилировано).

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

Я думал, что смогу просто использовать то, что делает дизайнер WinForm.

Возможно ли это?

Ответы [ 3 ]

7 голосов
/ 10 февраля 2010

В этой статье журнала MSDN должно быть все необходимое.

0 голосов
/ 10 февраля 2010

Да, вы можете добиться этого, используя Compiler Services (компиляция кода C #) или Emit класс, если вы знаете, как правильно построить MSIL.

0 голосов
/ 10 февраля 2010

Это на самом деле не так просто, как было до .NET, поскольку визуальная версия формы, которую вы видите в Visual Studio, на самом деле является результатом нескольких файлов.

Но в простейшей форме вы можете просто отразить то, что .NET делает в начале создания новой формы:

  1. Создайте три файла Form.cs, Form.Designer.cs и Form.resx (который является файлом XML).
  2. Поместите в них тот же контент по умолчанию, что и VS
  3. Имитация кода, сгенерированного при добавлении элементов управления, кода и ресурсов

Это будет утомительное задание, но оно может быть выполнено. Однако добавление ресурсов будет обременительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...