Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Classe perso dans un PropertyGrid [ Windows / Formulaire et Controls ] (Kevin.Ory)

vendredi 11 janvier 2008 à 17:40:25 | Classe perso dans un PropertyGrid

Kevin.Ory

Bonjour,

J'ai un petit problème dans l'utilisation d'une PropertyGrid. Lorsque on y affiche une classe (créé nous-même dans le code) ayant comme propriété une autre classe (aussi déclaré nous-même), cette propriété s'affiche en grisé et impossible à "ouvrir":

J'ai créé une classe ayant 2 propriétés, une qui est un Button (ValeurEditable) et donc une classe du framework, une autre qui est une classe que j'ai créé moi même (ValeurPasEditable). Dans la PropertyGrid ca s'affiche comme ca:

http://img46.imageshack.us/img46/1263/sanstitreld8.jpg

La ValeurEditable, qui est une classe Button, possède donc un petit + qui permet de l'ouvrir et de naviguer parmi ses propres propriétés. Mais pour la propriété ValeurPasEditable, qui est une classe que j'ai déclaré moi même, rien à faire, ca reste en grisée et impossible à ouvrir.

Pourtant, lorsque on debug et qu'on met cette classe en espion, on peut sans problème naviguer dans cette ValeurNonEditable:

http://img205.imageshack.us/img205/5791/sans1hk5.jpg


Et d'ailleur, le problème s'applique aussi lorsque on créé un UserControl et que l'une de ses propriétés est une classe que nous avons nous-même déclarée:

http://img210.imageshack.us/img210/5665/sans2tx5.jpg


Comment éviter ça?

vendredi 11 janvier 2008 à 21:31:50 | Re : Classe perso dans un PropertyGrid

nhervagault

Administrateur CodeS-SourceS
Salut

Je ne vois pas trop comment tu as fais pour rendre readonly ta propriété
Je suis intéressé de comprendre d'ou vient ton problème

Voici une classe qui fonctionne
Imports System.ComponentModel
Public Class test
    Private m_valeur As Integer
    <Browsable(True)> _
    <Category("Test")> _
    <Description("Description")> _
    Public Property valeur() As Integer
        Get
            Return m_valeur
        End Get
        Set(ByVal value As Integer)
            m_valeur = value
        End Set
    End Property

End Class
________________________________________________
Voici une classe qui est en readonly

Public Class test
    Private m_valeur As Integer
    <Browsable(True)> _
    <Category("Test")> _
    <Description("Description")> _
    Public ReadOnly Property valeur() As Integer
        Get
            Return m_valeur
        End Get
    End Property

End Class

_____________________________________

Bon courage

samedi 12 janvier 2008 à 02:53:04 | Re : Classe perso dans un PropertyGrid

Kevin.Ory

Salut,

Oui mais là tu expose un Integer avec ta propriété, pour ça y'a pas de soucis... mais ça n'a rien a voir. Si je reprend ce que je disais:

"J'ai un petit problème dans l'utilisation d'une PropertyGrid. Lorsque on y affiche une classe (créé nous-même dans le code) ayant comme propriété une autre classe (aussi déclaré nous-même), cette propriété s'affiche en grisé et impossible à "ouvrir""

"La ValeurEditable, qui est une classe Button, possède donc un petit + qui permet de l'ouvrir et de naviguer parmi ses propres propriétés. Mais pour la propriété ValeurPasEditable, qui est une classe que j'ai déclaré moi même, rien à faire, ca reste en grisée et impossible à ouvrir."

"Et d'ailleur, le problème s'applique aussi lorsque on créé un UserControl et que l'une de ses propriétés est une classe que nous avons nous-même déclarée"

De plus, on voit bien dans la boite "Espion" que la propriété dont je parle est une classe (ayant donc des membres)
Un Integer n'a pas de propriétés publiques à afficher dans une PropertyGrid, c'est clair


Par exemple, créé une une classe MyProperty avec des propriétés publiques, puis créé un control MyControl ayant une propriété publique as MyProperty. Ajoute MyControl sur un formulaire et regarde ses propriétés dans la boite "Propriété" de l'IDE: La propriété retournant un MyProperty est grisé et il n'y a pas de petit + pour afficher ses membres.
Par contre, si tu ajoute une nouvelle propriété à MyControl retournant cette fois une classe du framework (par exemple button), la propriété ne sera pas grisé dans la PropertyGrid...

samedi 12 janvier 2008 à 13:51:51 | Re : Classe perso dans un PropertyGrid

nhervagault

Administrateur CodeS-SourceS
Ok

Je n'avais pas analysé correctement le problème

Regardes les tuto suivant
http://www.dotnet-tech.com/tutoriels/propertygrid1/PropertyGrid.pdf
http://www.dotnet-tech.com/tutoriels/propertygrid2/Le%20PropertyGrid%20(Part%20II).pdf

Et tu trouveras surement la solution.

Bon courage

dimanche 13 janvier 2008 à 19:21:20 | Re : Classe perso dans un PropertyGrid

Kevin.Ory

Merci pour ce tuto nhervagault (vous allez les chercher ou vos pseudo? )

Il est vraiment intéressant, explications claires et faciles à comprendre... mais malheureusement ce que je cherche ne s'y trouve pas

Mais si vous cherchez à utiliser les éditeurs personnalisés pour l'édition des propriétés dans une PropertyGrid, ce tuto est fait pour vous...

Donc je vais encore chercher, pas le choix.. et encore merci pour ton aide nhervagault

dimanche 13 janvier 2008 à 19:49:01 | Re : Classe perso dans un PropertyGrid

nhervagault

Administrateur CodeS-SourceS
Réponse acceptée !
Bon, j'ai enfin trouvé la solution

Sur ta classe UneClasse tu ajoutes
l'attribut
<TypeConverter(GetType(ExpandableObjectConverter))> _

Cela te permettra de débloquer le readonly de ta classe

Avant la déclaration de la classe et là tu seras débloqué

Bon courage

dimanche 13 janvier 2008 à 20:03:36 | Re : Classe perso dans un PropertyGrid

Kevin.Ory

Parfait, c'est nickel

Grand merci à toi



Cette discussion est classé dans : affiche, problème, classe, créé, propertygrid


Répondre à ce message

Sujets en rapport avec ce message

Enabled [ par tetelle ] Bonjour,Alors, je dois mettre un TEXTBOX en ENABLED. Or quand on applique cette fonction, le texte s'affiche en gris.Le problème c'est qu'un des utili Problème avec MSHFlexgrid [ par natas ] MSHFlexgrid affiche au travers de ADDOC les datesau format US sans 0 significatif (ex: 1/2/2002).Alors que la Bd d'origine à un champ formaté surdd/mm problème avec module de classe de type recordset [ par Sly03 ] salut !j'ai un petit problème, je souhaite créé ma propre classe recordset appellée JeuEnregistrement. Toutes les méthode fonctionnent bien sauf une, Problème d'affichage ds une Datalist (XP-98) [ par youssif ] Salut à tous ,J'affiche 2 champs dans une Datalist, relié à Accès2000 par un ADODC. J'ai dévelloppé le prg sous WinXP, et sous XP pas de problème, les Problème de compilation ActiveX [ par DxuTAleX ] Je n' arrive pas a créé des controls ActiveX!Je ne peut créé que des exe standards.Est ce que ca vien de ma version de vb (6 initiation), ou si c' est ERR 713 / CLASSE NON ENREGISTREE??? [ par ceyquem ] "713 : La classe n'est pas enregistrée. Recherche d'un objet avec CLSID:{00000010-0000-0010-8000-00AA006D2EA4}Une erreur interne est survenue, vous po problème sur boucle forum [ par stella ] Bonjour,J'ai encore un problème : j'ai fait un forum dans lequel la page d'accueil affiche les messages et pour afficher ces messages j'ai une boucle Problème de déploiment [ par Eurololo ] Bonjour à tous.Deux gros problèmes qui se posent à moi :1) J'ai créé une appli en VB6 sous XP et créé un programme d'installation avec Inno Setup aprè Probleme de Load d'une form [ par Dreamfusion ] En fait, j'ai vu que je n'etais pas seul à avoir ce problème.C'est un problème de chargement de feuille. En utilisant Load, j'affiche tjrs mes feuille Problème d'affichage d'une colonne [ par Nkubi ] Bonjour,J'ai un problème car une colonne (dont je récupère les valeurs dans un autre classeur) ne s'affiche pas correctement, au lieu de la valeur que


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,172 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.