Winform - User Control

Winform - User Control - C#/.NET managed - Programmation

Marsh Posté le 22-03-2005 à 13:41:12    

Bonjour,
pour un projet utilisant des winforms, je cherche a faire un controle utilisateur a ajouter dans la toolbox de visual studio. Je voudrai que ce controle puisse offrir une liste de choix dans la fenetre de propriete de visual studio parmi une liste typée que je veux definir.
 
Si dans mon controle utilisateur j'utilise une propriete avec le type Color j'ai bien ma liste a choisir parmi tous les elements de Color, si j'utilise ma propre structure, ca ne fonctionne pas, je suppose qu'il faut utiliser un Iterator ou quelque chose comme ca, mais je ne vois pas comment faire, est ce que quelqu'un aurait un exemple ou une petite explication
 
Merci

Reply

Marsh Posté le 22-03-2005 à 13:41:12   

Reply

Marsh Posté le 22-03-2005 à 14:21:04    

Essaye d'être clair parce que la c le brouillard, j'ai rien compris, enfin pas tout!

Reply

Marsh Posté le 22-03-2005 à 15:26:33    

Pardon, j'vais essayer d'etre plus explicite.
 
Je veux creer un user control que je veux pouvoir reutiliser par Drag&Drop dans differents formulaires de mon projet.
 
Quand on glisse un winform sur un formulaire, par exemple un textbox, dans la fenetre propriete de droite, je peux par exemple modifier la propriete "Enabled" en true ou false. Ce choix se fait avec une listbox.
 
Dans mon user control, je veux pouvoir faire la meme chose, mais dans une liste que je veux definir moi meme. J'ai fait le test avec un boolean ou une propriete Color existante de .net et ca fonctionne, si je met ma propre liste ou structure, la propriete devient grisé et je ne peux pas choisir d'elements dans ma liste.
 
Donc comment declarer une liste de choix possible sur une propriete de mon user form ?


Message édité par liink le 22-03-2005 à 15:27:25
Reply

Marsh Posté le 22-03-2005 à 15:28:59    

Pour une liste de choix, il faut par exemple passer par une énumération

Reply

Marsh Posté le 22-03-2005 à 15:32:31    

J'ai essayé enum et struct, mais je n'y arrive pas, a chaque fois ma propriete est grisée.
J'ai essayé ce type de declaration :
 
 

Code :
  1. public struct RegularExpressionType
  2. {
  3. public const string None = "";
  4. public const string DigitOnly = "^[0-9]*$";
  5. public const string AlphaOnly = "[a-Z]*$";
  6. public const string CP = "\\d{5}";
  7. }


 
avec l'accesseur suivant :
 

Code :
  1. public RegularExpressionType RegularExpression
  2. {
  3. get {return _regularExpression;}
  4. set {_regularExpression = value;}
  5. }


Message édité par liink le 22-03-2005 à 15:38:07
Reply

Marsh Posté le 22-03-2005 à 15:33:40    

Envoi un morceau de code de ta classe

Reply

Marsh Posté le 22-03-2005 à 17:00:59    

j'etais en train de le faire quand tu l'as demandé :)
cf ci dessus le code

Reply

Marsh Posté le 06-04-2005 à 15:58:44    

J'ai trouvé, mais j'ai oublié de donner la reponse :
il faut creer un type enum et non pas une structure comme ci dessus
 
Et ensuite j'ai fait une classe qui fait la liaison entre l'element enumeré choisi et une vrai donnée typée telle qu'un string ou quelque chose de plus complexe.


Message édité par liink le 06-04-2005 à 15:59:11
Reply

Marsh Posté le 06-04-2005 à 15:59:51    

Et y'a aussi 2-3 attributs à mettre sur la propriété pour indiquer les valeurs par défaut, la catégorie de la propriété, etc...

Reply

Marsh Posté le 06-04-2005 à 16:05:59    

ah ! tu m'interresses alors, parce que par defaut chez moi, j'ai du mettre dans mon enumeration un element a 0 qui etait apparemment celui pris par defaut.
Pour la categorie je suppose que tu parles de ce genre de syntaxe comme pour la description :
 
[Description("Blablabla" )]
 
a coller avant l'accesseur ?


Message édité par liink le 06-04-2005 à 16:06:16
Reply

Marsh Posté le 06-04-2005 à 16:05:59   

Reply

Marsh Posté le 06-04-2005 à 16:09:29    

Pour la valeur par défaut, avec par exemple un boolean :

<DefaultValue(False)> _
Public Property Pouet() As Boolean
...


Pour les catégories, c'est dans le panneau de propriétés : apparence, comportement, divers, etc...

<Category("Behavior" )> _
Public Property Pouet() As Machin


Ca évite que tes propriétés squattent pauvrement dans "Divers" :D


Message édité par FlorentG le 06-04-2005 à 16:09:51
Reply

Marsh Posté le 14-04-2005 à 10:04:57    

Merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed