Une sous-propriété en VB.NET

3sys Messages postés 3 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 juillet 2004 - 16 juil. 2004 à 06:10
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009 - 15 janv. 2009 à 13:01
Bonjour,

J'aurais besoin de faire une sous propriété dans une classe de composant sous le même principe que la propriété Font c'est à dire que je voudrais faire une propriété du type d'une classe et avoir dans le designer la possibilité d'éditer les propriétés de cette classe qui me sert de propriété dans mon composant. Par exemple :

Composant hérité de TextBox
Propriété Configuration as ConfigServeur

Classe ConfigServeur
Propriété NomServeur as string
Propriété Login as string
Propriété Password

Je voudrais donc pouvoir lorsque je met mon TextBoxServeur dans ma forme, avoir la possibilité de voir les 3 propriétés de ma propriété Configuration et de les éditer.

Si je ne suis pas assez explicite, msg moi, je vous expliquerai plus en détail

Une solution me serait vraiment utile

Merci!

Jason Ouellet
3SYS Technologie
jason.ouellet@3sys.qc.ca

7 réponses

MOONWAX Messages postés 19 Date d'inscription mercredi 14 juillet 2004 Statut Membre Dernière intervention 16 août 2004 1
16 juil. 2004 à 17:41
Bonjour Jason,

Il faut d'abord importer le

Imports System.ComponentModel

puis, il y a plein d'attributs que tu peux spécifier pour chaque propriété (publique, bien sûr, sinon elle ne s'affichera pas dans le designer :

    <Description("Le nom du server à contacter"), Category("Server")> _
    Public Property NomServeur() As String
        Get
            '...
        End Get
        Set(ByVal Value As String)
            '...
        End Set
    End Property


Puis il y a d'autres attributs comme "DefaultValue", "ToolboxBitmap", ...

C'est ce que tu cherchais ?

MOONWAX
0
3sys Messages postés 3 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 juillet 2004
19 juil. 2004 à 15:46
Salut Moonwax,

Merci pour ce bout, mais il m'en manque un peu.

Je voudrais faire comme les propriété "Size, Location, Font,..." tu sais avec le petit + à gauche de la propriété pour ainsi avoir accès à des propriétées de la classe d'une propriété principale.

Exemple :

Il existe une classe "size" qui contient des propriétés "Height et Width" Dans un textbox, on a la propriété size de la classe "size" avec le petit + pour avoir accès directement aux propriétés de la classe "size" dans les propriétés du textbox

Je voudrais faire la même chose.

Merci!

Jason
0
MOONWAX Messages postés 19 Date d'inscription mercredi 14 juillet 2004 Statut Membre Dernière intervention 16 août 2004 1
19 juil. 2004 à 18:10
Salut Jason,

Je voulais te faire toute une explication sur les classes de type TypeConverter (qui servent à expliquer à VB comment transformer les données du designer en un "Configserveur"), quand j'ai trouvé une façon beaucoup plus simple :

essaie :

<TypeConverter(GetType(ExpandableObjectConverter)), Serializable()> _
Public Class ConfigServeur
    Private _sNomServeur As String
    Private _sLogin As String
    Private _sPassword As String

Public Property Nomserveur() As String
'etc ...


ça marche ?
0
3sys Messages postés 3 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 20 juillet 2004
20 juil. 2004 à 15:10
Salut Moonwax,

Ça fonctionne très bien ton bout de code.
Merci Beaucoup pour ton aide.

Pour les classes de type TypeConverter, connais-tu des endroit ou des documents ou je trouverais de la documentation à ce propos.

Merci!

Jason Ouellet
0

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

Posez votre question
MOONWAX Messages postés 19 Date d'inscription mercredi 14 juillet 2004 Statut Membre Dernière intervention 16 août 2004 1
20 juil. 2004 à 23:17
Salut Jason,

Il doit surement y avoir des articles sur MSDN... Personellement, j'ai un super-guide VB.Net qui s'appelle "Au coeur de Microsoft Visual Basic .Net", paru chez Microsoft Press, de la main de Richard Clark. C'est un des rares ouvrages VB.Net écrit par un français, et qui traite presque uniquement de techniques avancées (dessin, création de contrôles, multithreading, typeconverters...).

Regarde un peu son site web www.c2i.fr, peut-être qu'il a aussi écrit un article sur les Typeconverters avant de le mettre dans son livre.

Bonne programmation !

MOONWAX
0
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009
14 janv. 2009 à 13:55
Bonjour,

Bon, je sais que la conversation date un peu mais j'ai cherché longuement sur le Web et je n'ai rien trouvé de satisfaisant.


J'ai essayé d'appliquer le code ci-dessus mais le petit plus de ma propriété n'apparaît pas.  J'espère que vous pourrez m'aider.

Pascal

Voici mon bout de code:


Public
Class TableLayoutPanelPerso

   Inherits TableLayoutPanel




   Private

_ma_classe


As

maClasse





   Public





Property

MaClassePerso()


As

maClasse



      Get



         Return





Me

._ma_classe



      End





Get










      Set

(


ByVal

value


As

maClasse)



         Me

._ma_classe = value



      End





Set



   End





PropertyEnd







Class



<TypeConverter(


GetType

(ExpandableObjectConverter)), Serializable()> _



Public





Class

maClasse



   Private

_champ1


As





String



   Private

_champ2


As





String


   <Description(





"Le champ 1"

), Category(


"Champ1"

)> _



   Public





Property

Champ1()


As





String



      Get



         Return





Me

._champ1



      End





Get









      Set

(


ByVal

value


As





String

)



         Me

._champ1 = value



      End





Set



   End





Property


   <Description(





"Le champ 2"

), Category(


"Champ2"

)> _



   Public





Property

Champ2()


As





String



      Get



         Return





Me

._champ2



      End





Get





      Set

(


ByVal

value


As





String

)   



         Me

._champ2 = value



      End





Set



   End





PropertyEnd







Class
0
Passepoil75 Messages postés 30 Date d'inscription vendredi 12 janvier 2007 Statut Membre Dernière intervention 17 septembre 2009
15 janv. 2009 à 13:01
Bon, j'ai finalement trouvé.  Il manquait le 'New' dans la ligne: 

      Private _ma_classe As New
maClasse
0
Rejoignez-nous