Comment grouper les propriétés d'un contrôle ?

Résolu
cs_hsmr Messages postés 20 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 11 juillet 2008 - 26 août 2004 à 18:43
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 24 sept. 2004 à 09:07
Bonjour!

Je cherche à grouper les propriétés d'un contrôle et je ne sais pas comment faire ([category].... ?????).
J'ai cherché sur MSDN, sans succès.
En fait, j'ai une catégorie1 et j'aimerais qu'elle regroupe les catégories 1.1 et 1.2 (comme la proprité Apparence d'un formulaire qui regroupe BackColor, Background et Cursor).
Merci.

26 réponses

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
24 sept. 2004 à 09:07
certes ... 8-)
Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
3
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 août 2004 à 19:07
je ne crois pas qu'on puisse faire des sous-catégories

Cocoricoooooooo !!!!
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 août 2004 à 19:10
sinon pour définir une catégorie
[Category("Ma categorie")]


Cocoricoooooooo !!!!
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
26 août 2004 à 22:48
c'est possible, il faut bien sur ce servir des attributs ... c'est expliqué dans le bouquin de Richard Clark : " Au coeur de visual Basic .net" je sais on est en C# mais c'est pareil ;)
J'ai pas le bouquin sous la main la, mais je te redis ca demain. si tu n'as pas de reponses de moi d'ici la, n'hésite pas à me rappeller à l'ordre :)

@+

Cyril
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_hsmr Messages postés 20 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 11 juillet 2008
27 août 2004 à 07:22
OK, merci! J4attends alors ta réponse "Online".
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 août 2004 à 08:28
ah je ne savais pas
j'attend aussi alors ^^

Cocoricoooooooo !!!!
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
27 août 2004 à 09:45
De faire des sous catégories c'est possible ?

Tiens j'ai du zapper la page qui en parle :(

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 août 2004 à 14:19
Je me suis un peu avancé, en disant que Richard l'expliquait dans son bouquin, j'ai relu hier soir la partie ou je pensais trouvait de la doc la dessus mais rien n'expliquait.

Mais une chose est sur : c'est possible, on parle bien de la meme chose : du petit plus qui est a droite par exemple de la propriété size location etc.... ?

c'est possible, et Richard sans sert dans son controle C2iLine, il s'en sert pour la propriété PointCurve, j'ai encore pas compris comment il faisait, mais c'est possible puisqu'il le fait, ca m'a juste l'air tres compliqué :)

Vous pouvez telecharger les codes de son controle a cette adresse :
--> http://www.c2i.fr/press/coeurvbnet.aspx
ou aussi ici :
--> http://www.c2i.fr/code.aspx?IDCode=431

j'ai pas encore beaucoup eu le temps de decortiquer le code, mais si quelqu'un arrive à comprendre comment il fait, merci de me le signaler.

Cyril
0
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
27 août 2004 à 14:26
Alors non la question etait pas sur ca, mais sur le fait de mettres des sous categories dans une categorie (genre Couleur sous Apparance)

Et pour le code de rechard, sache que si une propriété expose une structure ou une classe alors VS le fait tout seul.

A++

:-p Crazyht :)
MVP Visual C#.NET

[Admin Codes-Sources]
[Membre Developer-Association]
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
27 août 2004 à 15:15
ok, j'avais donc mal compris la question : mille pardons :blush)

par contre j'ai pas reussi à reproduire le code de richard, j'ai essayé vite fait avec une classe, masi non :( je reesaierais ce soir

@+

Cyril
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 août 2004 à 16:14
je me disais aussi ^^

Cocoricoooooooo !!!!
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
30 août 2004 à 11:42
hello
pour faire apparaitre le petit plus a gauche dans la fenetre propriete il semble qu'il faut créer une classe avec tout les propriete qui vont bien et les instancie au niveau de ton objet...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
2 sept. 2004 à 14:11
heuuu....

apres test....

ben j'ai pas de petit plus...
alors avis a la communaute....

comment je fais pour avoir mon petit plus dans une propriete...

j'ai vu un truc style [browsable(true)]...

mais bon...

kkun a une idee ??
Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
2 sept. 2004 à 14:29
petite precision...
bon le browsable c sur c pas ca c'est juste pour que cela apparaisse dans la fenetre propriete de l'objet....

par contre quand je defini une classe et que je la defini en temps que propriete d'un objet...
la chose apparait bien mais en grise...pas moyen de voir le petit plus...ou de modifier quoi que ce soit...

....
private test ggg = new test();

//[Browsable(true),System.ComponentModel.
public test propriete_test
{
get
{
return ggg;
}
set
{
ggg=value;
}
}
....

public class test
{
private string _toto;
private string _tutu;

public test()
{
}

public string toto
{
get
{
return _toto;

}
set
{
_toto=value;
}
}
public string tutu
{
get
{
return _tutu;

}
set
{
_tutu=value;
}
}
}

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
2 sept. 2004 à 22:53
euh là je donne ma langue au chat lol

Cocoricoooooooo !!!!
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
2 sept. 2004 à 23:46
j'ai eu le meme problème que toi Arthenatius :(

tient nous au courant !!!!

Si ca peut t'aider, c'est ce que j'essayais de comprendre dans la source de Richard :)

Cyril
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
3 sept. 2004 à 08:53
Argggghhhhhhhhhhhhhh
that is pas drole....

bon ben j'avais déja jeter un oeuil au code du sieur richard...(en diagonale certes...)
donc je vais me le taper ligne par ligne :o)))

je vous tiens au jus si g du neuf...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
3 sept. 2004 à 15:01
bon alors je me suis penche sur le code vbesque de richard...

devant la classe PointCurve...
la fameuse on a ca...

<TypeConverter(GetType(c2i.Windows.Forms.TypeConverters.PointCurveConverter))> _
Public Class PointCurve


que j'ai transforme en ca :

[TypeConverter(GetType(testConverter))]

testConverter etant la classe si dessous :

public class testConverter : ExpandableObjectConverter
{

//	Public Overloads Overrides Function CanConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal destinationType As System.Type) As Boolean
//	If destinationType.GetType Is GetType(InstanceDescriptor) Then Return True
//	Return MyBase.CanConvertTo(context, destinationType)
//	End Function
//
//	Public Overloads Overrides Function ConvertTo(ByVal context As System.ComponentModel.ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object, ByVal destinationType As System.Type) As Object
//	If Not destinationType.GetType Is GetType(InstanceDescriptor) Then Return MyBase.ConvertTo(context, culture, value, destinationType)
//	Dim ci As System.Reflection.ConstructorInfo = GetType(PointCurve).GetConstructor(Nothing)
//	Return New InstanceDescriptor(ci, Nothing, False)
//				   End Function
}

:big) c bien beau tout ca....
mais bon il me reste a decode se qui ce trouve en commentaire dans cette classe...

je pense que c'est cette classe qui fait le chtit plus...
mais suis pas sur....

voila si kkun voit kkchose qu'y comprend...
suis a l'ecoute ...
je continue de chercher...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
3 sept. 2004 à 15:11
[TypeConverter(GetType(testConverter))]

est plutot devenu :

[TypeConverter(typeof(testConverter))]

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 14
3 sept. 2004 à 15:23
YEEEEESSSSSSSSSSSSSSSSSSSSSSSSSS !!!!!

:o))))

voila le resultat :

[TypeConverter(typeof(testConverter))]
public class test
{
private string _toto;
private string _tutu;

public test()
{
}

public string toto
{
get
{
return _toto;

}
set
{
_toto=value;
}
}
public string tutu
{
get
{
return _tutu;

}
set
{
_tutu=value;
}
}
}
public class testConverter : ExpandableObjectConverter
{
public override bool CanConvertTo(System.ComponentModel.ITypeDescriptorContext context, System.Type destinationType)
{
System.ComponentModel.Design.Serialization.InstanceDescriptor instancedescripteur = new System.ComponentModel.Design.Serialization.InstanceDescriptor(null, null);
if(destinationType.GetType() ==  instancedescripteur.GetType())
return true;

return base.CanConvertTo(context, destinationType);
}

public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
{
System.ComponentModel.Design.Serialization.InstanceDescriptor instancedescripteur = new System.ComponentModel.Design.Serialization.InstanceDescriptor(null, null);
if(destinationType.GetType()!=instancedescripteur.GetType())
{
return base.ConvertTo (context, culture, value, destinationType);
}
System.Reflection.ConstructorInfo ci = typeof(test).GetConstructor(null);
return new System.ComponentModel.Design.Serialization.InstanceDescriptor(ci, null, false);
}


et la magie apres compilation on voit apparaitre le chtit plus qui va bien pour la propriete...

Arthenius

"Ce qui ne me tue pas, me rend plus fort..."
0
Rejoignez-nous