Ce que je viens de faire était complètement manuel :
- Créer votre formulaire .Designer.cs
- Ajoutez-le à Visual Studio (clic droit, ajouter un élément existant).
- Ajouter le partiel à votre classe existante.
- Ajouter le espace de noms exactement comme dans le cs original à la votre formulaire .designer.cs
- À l'intérieur de cet espace de nom, ajoutez l'élément classe (n'oubliez pas d'inclure la définition partiel mot-clé). Ne pas ajouter l'héritage et/ou les interfaces à cette classe partielle dans Designer.cs.
- Une fois ceci fait, vous êtes prêt à couper y pâte les suivantes :
a) Retirer le composants que vous pourriez avoir dans votre Winform original. Si l'application était .NET 1.1, vous aurez quelque chose comme ceci :
/// <summary>
/// Required designer variable.
/// </summary>
private Container components = null;
b) Ajouter un nouveau composants dans la classe Designer :
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
c) A moins que vous n'ayez spécifique la méthode dispose, c'est la norme. Si vous n'avez pas d'héritage de forme, je pense que base.Dispose peut être supprimé en toute sécurité :
/// <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) Copie tous le code à l'intérieur du #region Code généré par Windows Form Designer à la nouvelle classe Designer.cs.
e) Vous devez également copier tous les variables membres de tous vos objets (étiquettes, boîtes de texte, etc. que vous utilisez dans le concepteur).
Ça devrait être tout. Enregistrez et compilez.
N'oubliez pas qu'une classe partielle peut être répartie entre un nombre N de fichiers, mais tous doivent partager le MÊME espace de noms.
Cela en vaut-il la peine ? Eh bien, dans mon cas, j'ai eu un tas de énorme winforms avec des tonnes de code et de contrôles. VS2008 se traînait à chaque fois que je passais du/au concepteur. Cela a rendu la vue du code plus réactive. Je me souviens avoir dû attendre 3-5 secondes avant d'avoir un code réactif. Maintenant, il faut 1
UPDATE :
En effectuant les étapes 1 à 5 et en déplaçant un contrôle existant ou en ajoutant un nouveau contrôle, rien ne sera automatiquement déplacé vers la classe designer.cs. Les nouveaux éléments sont transférés dans la nouvelle classe Designer, mais les anciens éléments restent là où ils étaient, malheureusement.
Vous devez également fermer et rouvrez le fichier (après avoir ajouté/créé la classe partielle) pour que VS se dessine correctement dans le Designer ; si vous ne le faites pas, des formulaires vides peuvent être dessinés.