OVH Cloud OVH Cloud

Héritage et cast

6 réponses
Avatar
MrChris
Salut !

J'ai le souci suivant : j'ai fait une classe CNode qui hérite de treenode.
Et j'aimerais pouvoir faire un truc du style :

Dim MonNode as new CNode
MonNode = Treeview1.selectednode

Le compilateur me jette car il ne sait pas faire un cast de TreeNode vers
CNode.
Je le comprend, car CNode n'est plus vraiment un TreeNode même si il en
hérite...

Comment faire pour lui apprendre à faire ce cast ???
Sachant que CNode est un treenode avec juste 2 propriétés en plus.

Y a moyen ???

Merci
MrChris

6 réponses

Avatar
Fred
Bonjour,
Et avec ceci ?
MonNode = CType(Treeview1.selectedNode, Cnode)


"MrChris" a écrit dans le message de news:

Salut !

J'ai le souci suivant : j'ai fait une classe CNode qui hérite de treenode.
Et j'aimerais pouvoir faire un truc du style :

Dim MonNode as new CNode
MonNode = Treeview1.selectednode

Le compilateur me jette car il ne sait pas faire un cast de TreeNode vers
CNode.
Je le comprend, car CNode n'est plus vraiment un TreeNode même si il en
hérite...

Comment faire pour lui apprendre à faire ce cast ???
Sachant que CNode est un treenode avec juste 2 propriétés en plus.

Y a moyen ???

Merci
MrChris





Avatar
MrChris
Ah !
Je l'attendais celle la...
Non, il ne sais pas caster quand même, j'ai meme essayé avec un DirectCast..

@+MrChris
Avatar
MrChris
Ce qui me paraît étrange, c'est que dans l'autre sens ca fonctionne :

Dim MonNode as new CNode
Treeview1.selectednode = MonNode

@+MrChris
Avatar
Fred
Bonjour,
Il fallait le dire ;-)
Chez moi cela fonctionne mais dans mon Treeview, j'ai effectivement ajouté
des nodes hérités.
Ne serait-ce pas ton problème ?

"MrChris" a écrit dans le message de news:

Ah !
Je l'attendais celle la...
Non, il ne sais pas caster quand même, j'ai meme essayé avec un
DirectCast..

@+MrChris



Avatar
MrChris
Non, mon problème est que j'aimerais convertir des nodes en nodes hérités,
alors
qu'il n'y a pas de problème pour convertir des nodes hérités en nodes !

j'ai deux pistes :
System.ComponentModel.TypeConverter
IConvertible (me paraît lèdge)

Merci
@+MrChris
Avatar
MrChris
Ce que je peux faire : ne pas hériter CNode de treenode et inclure
dans ma classe CNode une propriété Treenode qui trimballe le treenode
à la place de l'héritage.
Mais je ne trouve pas ca fun !!!

MrChris