Ответ 1
То, что я только что сделал, было полностью вручную:
- Создать yourform.Designer.cs
- Добавьте его в Visual Studio (щелкните правой кнопкой мыши, добавьте существующий элемент)
- Добавьте частичное ключевое слово в существующий класс.
- Добавьте пространство имен точно так же, как в исходном cs, к yourform.designer.cs
- Внутри этого пространства имен добавьте определение класса (не забудьте включить частичное ключевое слово). Не добавлять наследование и/или интерфейсы в этот неполный класс в Designer.cs.
- После этого вы готовы вырезать и вставить следующее:
a) Удалите объект компонентов, который может быть у вас в исходной Winform. Если приложение было .NET 1.1, у вас будет что-то вроде этого:
/// <summary>
/// Required designer variable.
/// </summary>
private Container components = null;
b) Добавить новый объект компонента в класс Designer:
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
c) Если у вас нет конкретного метода удаления, это стандарт. Если у вас нет какой-либо формы Наследование, я думаю, что base.Dispose можно безопасно удалить:
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose( bool disposing )
{
if ( disposing && ( components != null ) )
{
components.Dispose();
}
base.Dispose( disposing );
}
d) Скопируйте все код внутри #областного конструктора форм Windows сгенерированный код в новый класс Designer.cs.
e) Вы также должны скопировать все переменные-члены для всех ваших объектов (метки, текс-боксы и т.д., которые вы используете в дизайнере).
Это должно быть все об этом. Сохраните и скомпилируйте.
Помните, что частичный класс можно разделить на N количество файлов, но все должны совместно использовать пространство имен SAME.
Стоит ли это? Ну, в моем случае у меня была куча огромных winforms с тоннами кода и элементов управления. VS2008 сканировал каждый раз, когда я переключался с/на дизайнера. Это сделало просмотр кода более отзывчивым. Я помню, что пришлось ждать 3-5 секунд, прежде чем иметь отзывчивый код. Теперь требуется 1...
UPDATE:
Выполнение шагов с 1 по 5 и перемещение существующего или добавления нового элемента управления не будут автоматически перемещать что-либо в класс designer.cs. Новые материалы идут в новый класс Designer, но старые вещи остаются там, где это было, к сожалению.
Вам также нужно закрыть и снова открыть файл (после добавления/создания частичного класса) для VS, чтобы правильно рисовать в Designer; неспособность сделать может привести к пустым формам, которые рисуются.