Bonjour,
Je souhaite écrire un contrôle utilisateur personnalisé en C#, pour lequel je voudrais définir un champ complexe éditable via la fenêtre de propriétés (dans le même style que le champ Size, qui étant une structure, peut être édité dans le concepteur d'un coup ("240; 200" ) ou par parties si on clique sur le + (Width "240" Height "200" ).
J'ai écrit la classe correspondant à mon champ complexe, j'ai écrit le TypeConverter qui va avec, j’obtiens bien l’effet souhaité dans l’éditeur de propriétés de mon contrôle (je peux éditer le contenu de mon champ complexe en une seule ligne ou par élément).
Cependant, quand je regarde le résultat dans le code généré (dans FormMachin.Designer.cs), je n’obtiens pas du tout la même chose que ce qui est généré pour les types complexes standard.
Pour un champ Size, le concepteur génère le code :
Code :
- this.buttonTruc.Size = new System.Drawing.Size( 240, 200 );
|
alors que mon champs personnalisé génère le code (en remplissant des merdes dans le fichier .resx) :
Code :
- this.instanceControle1.valeurComplexe = ((Moi.TypeComplexe)(resources.GetObject("instanceControle1.valeurComplexe" )));
|
Une idée de ce qu’il faut implémenter / spécifier pour que le concepteur me génère le code suivant pour mon champ personnalisé ?
Code :
- this.instanceControle1.valeurComplexe = new Moi.TypeComplexe("titi", 200, UneEnum.Valeur);
|
Une inspection des fichiers de définition correspondant au type Size ne m'a pas aidé...
Merci !
Message édité par Mackila le 11-03-2009 à 21:45:40