Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Treeview et noeud visible..

7 réponses
Avatar
Driss HANIB
Bonjour à tous

je charge dans un treeview une liste de données et je selectionne par prog
un noeud particulier.
le problème est que si ma liste dépasse la hauteur du treeview et que le
noeud est "en dessous" de la pertie visible...
et bien, malgré la sélection jen le vois pas ..
comment peut on faire ensorte qu'un noeud particulier soit dans la fenetre
visible du TV.
Comme la commande TopRow du Flexgrid

Merci
Driss

7 réponses

Avatar
jm
"Driss HANIB" wrote in message
news:%
Bonjour à tous

je charge dans un treeview une liste de données et je selectionne par prog
un noeud particulier.
le problème est que si ma liste dépasse la hauteur du treeview et que le
noeud est "en dessous" de la pertie visible...
et bien, malgré la sélection jen le vois pas ..
comment peut on faire ensorte qu'un noeud particulier soit dans la fenetre
visible du TV.
Comme la commande TopRow du Flexgrid



Hello Driss,

Tu as la propriété EnsureVisible de chaque Node:

TreeView1.Nodes(1).EnsureVisible = True

--
Jean-marc
Avatar
Jean-marc
"Driss HANIB" wrote in message
news:%
Bonjour à tous

je charge dans un treeview une liste de données et je selectionne par prog
un noeud particulier.
le problème est que si ma liste dépasse la hauteur du treeview et que le
noeud est "en dessous" de la pertie visible...
et bien, malgré la sélection jen le vois pas ..
comment peut on faire ensorte qu'un noeud particulier soit dans la fenetre
visible du TV.
Comme la commande TopRow du Flexgrid



Hello Driss,

Tu as la propriété EnsureVisible de chaque Node:

TreeView1.Nodes(1).EnsureVisible = True

// Sorry si le message est en double...

--
Jean-marc
Avatar
Driss HANIB
salut Jean marc

j'avais bien pensé à cela mais j'obtiens un message d'erreur

mon écriture :

Elev_Tv_ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisib
le = True

message d'erreur obtenu

"Un appel de fonction sur la partie gauche d'une affcetation doit renvoyer
un type variant ou object"

QUID ?


"Jean-marc" a écrit dans le message de
news:ep7ko2$iu6$
"Driss HANIB" wrote in message
news:%
> Bonjour à tous
>
> je charge dans un treeview une liste de données et je selectionne par


prog
> un noeud particulier.
> le problème est que si ma liste dépasse la hauteur du treeview et que le
> noeud est "en dessous" de la pertie visible...
> et bien, malgré la sélection jen le vois pas ..
> comment peut on faire ensorte qu'un noeud particulier soit dans la


fenetre
> visible du TV.
> Comme la commande TopRow du Flexgrid

Hello Driss,

Tu as la propriété EnsureVisible de chaque Node:

TreeView1.Nodes(1).EnsureVisible = True

// Sorry si le message est en double...

--
Jean-marc




Avatar
Joël
bonjour,
j'ai eu le meme probleme avec un listview (voir autre message)
j'ai trouver la solustion à essayer pour le treeview

dim x as variant
x = ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisible =
True

à essayer


"Driss HANIB" a écrit dans le message de news:

salut Jean marc

j'avais bien pensé à cela mais j'obtiens un message d'erreur

mon écriture :

Elev_Tv_ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisib
le = True

message d'erreur obtenu

"Un appel de fonction sur la partie gauche d'une affcetation doit renvoyer
un type variant ou object"

QUID ?


"Jean-marc" a écrit dans le message de
news:ep7ko2$iu6$
"Driss HANIB" wrote in message
news:%
> Bonjour à tous
>
> je charge dans un treeview une liste de données et je selectionne par


prog
> un noeud particulier.
> le problème est que si ma liste dépasse la hauteur du treeview et que
> le
> noeud est "en dessous" de la pertie visible...
> et bien, malgré la sélection jen le vois pas ..
> comment peut on faire ensorte qu'un noeud particulier soit dans la


fenetre
> visible du TV.
> Comme la commande TopRow du Flexgrid

Hello Driss,

Tu as la propriété EnsureVisible de chaque Node:

TreeView1.Nodes(1).EnsureVisible = True

// Sorry si le message est en double...

--
Jean-marc








Avatar
Driss HANIB
Joel

Merci cela fonctionne !!
Bizarre..mais efficace

Driss

"Joël" a écrit dans le message de
news:45b7737c$0$25933$
bonjour,
j'ai eu le meme probleme avec un listview (voir autre message)
j'ai trouver la solustion à essayer pour le treeview

dim x as variant
x = ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisible


> True

à essayer


"Driss HANIB" a écrit dans le message de news:

> salut Jean marc
>
> j'avais bien pensé à cela mais j'obtiens un message d'erreur
>
> mon écriture :
>
>


Elev_Tv_ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisib
> le = True
>
> message d'erreur obtenu
>
> "Un appel de fonction sur la partie gauche d'une affcetation doit


renvoyer
> un type variant ou object"
>
> QUID ?
>
>
> "Jean-marc" a écrit dans le message de
> news:ep7ko2$iu6$
>> "Driss HANIB" wrote in message
>> news:%
>> > Bonjour à tous
>> >
>> > je charge dans un treeview une liste de données et je selectionne par
> prog
>> > un noeud particulier.
>> > le problème est que si ma liste dépasse la hauteur du treeview et que
>> > le
>> > noeud est "en dessous" de la pertie visible...
>> > et bien, malgré la sélection jen le vois pas ..
>> > comment peut on faire ensorte qu'un noeud particulier soit dans la
> fenetre
>> > visible du TV.
>> > Comme la commande TopRow du Flexgrid
>>
>> Hello Driss,
>>
>> Tu as la propriété EnsureVisible de chaque Node:
>>
>> TreeView1.Nodes(1).EnsureVisible = True
>>
>> // Sorry si le message est en double...
>>
>> --
>> Jean-marc
>>
>>
>
>




Avatar
jm
Re Hello,


en fait c'est parce que EnsureVisible est une méthode,
mais c'est une méthode qui retourne une valeur.
Donc ça s'emploie comme ça:

Dim bRet as Boolean

bRet = Treeview1.nodes(1).EnsureVisible
If bRet
' le noeud est visible, un scrolling a été fait
Else
' le noeus etait deja visible, il n' a pas été
' utile de scroller
Endif

=> La méthode fait de toute façon le boulot
(si nécessaire), et en plus, elle te dit si
elle a du *vraiment* faire quelques chose :-)

Voila l'explication!

C'est documenté ici:
http://msdn2.microsoft.com/en-us/library/aa443422(VS.60).aspx


Donc quand on écrit:
x = Treeview1.nodes(1).EnsureVisible = True

Ca fait:

x est True si un scrolling a été nécessaire
x est False si un scrolling était inutile.

Note:

On peut simplement écrire:
Treeview1.nodes(1).EnsureVisible

Comme ça, ça marche; C'est juste comme appeler une
fonction sans checker la valeur de retour

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/






"Driss HANIB" wrote in message
news:
Joel

Merci cela fonctionne !!
Bizarre..mais efficace

Driss

"Joël" a écrit dans le message de
news:45b7737c$0$25933$
bonjour,
j'ai eu le meme probleme avec un listview (voir autre message)
j'ai trouver la solustion à essayer pour le treeview

dim x as variant
x =
ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisible


>> True

à essayer


"Driss HANIB" a écrit dans le message de news:

> salut Jean marc
>
> j'avais bien pensé à cela mais j'obtiens un message d'erreur
>
> mon écriture :
>
>


Elev_Tv_ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisib
> le = True
>
> message d'erreur obtenu
>
> "Un appel de fonction sur la partie gauche d'une affcetation doit


renvoyer
> un type variant ou object"
>
> QUID ?
>
>
> "Jean-marc" a écrit dans le message de
> news:ep7ko2$iu6$
>> "Driss HANIB" wrote in message
>> news:%
>> > Bonjour à tous
>> >
>> > je charge dans un treeview une liste de données et je selectionne
>> > par
> prog
>> > un noeud particulier.
>> > le problème est que si ma liste dépasse la hauteur du treeview et
>> > que
>> > le
>> > noeud est "en dessous" de la pertie visible...
>> > et bien, malgré la sélection jen le vois pas ..
>> > comment peut on faire ensorte qu'un noeud particulier soit dans la
> fenetre
>> > visible du TV.
>> > Comme la commande TopRow du Flexgrid
>>
>> Hello Driss,
>>
>> Tu as la propriété EnsureVisible de chaque Node:
>>
>> TreeView1.Nodes(1).EnsureVisible = True
>>
>> // Sorry si le message est en double...
>>
>> --
>> Jean-marc
>>
>>
>
>








Avatar
Driss HANIB
OK Jean Marc,

je ne savais pas cela mais je vois effectivement l'intérêt

Driss

"jm" a écrit dans le message de
news:45b786a6$0$22520$
Re Hello,


en fait c'est parce que EnsureVisible est une méthode,
mais c'est une méthode qui retourne une valeur.
Donc ça s'emploie comme ça:

Dim bRet as Boolean

bRet = Treeview1.nodes(1).EnsureVisible
If bRet
' le noeud est visible, un scrolling a été fait
Else
' le noeus etait deja visible, il n' a pas été
' utile de scroller
Endif

=> La méthode fait de toute façon le boulot
(si nécessaire), et en plus, elle te dit si
elle a du *vraiment* faire quelques chose :-)

Voila l'explication!

C'est documenté ici:
http://msdn2.microsoft.com/en-us/library/aa443422(VS.60).aspx


Donc quand on écrit:
x = Treeview1.nodes(1).EnsureVisible = True

Ca fait:

x est True si un scrolling a été nécessaire
x est False si un scrolling était inutile.

Note:

On peut simplement écrire:
Treeview1.nodes(1).EnsureVisible

Comme ça, ça marche; C'est juste comme appeler une
fonction sans checker la valeur de retour

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/






"Driss HANIB" wrote in message
news:
> Joel
>
> Merci cela fonctionne !!
> Bizarre..mais efficace
>
> Driss
>
> "Joël" a écrit dans le message de
> news:45b7737c$0$25933$
>> bonjour,
>> j'ai eu le meme probleme avec un listview (voir autre message)
>> j'ai trouver la solustion à essayer pour le treeview
>>
>> dim x as variant
>> x > >> ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisible
> > >> True
>>
>> à essayer
>>
>>
>> "Driss HANIB" a écrit dans le message de


news:
>>
>> > salut Jean marc
>> >
>> > j'avais bien pensé à cela mais j'obtiens un message d'erreur
>> >
>> > mon écriture :
>> >
>> >
>


Elev_Tv_ListeBatiments.Nodes(Elev_Tv_ListeBatiments.Nodes.Count).EnsureVisib
>> > le = True
>> >
>> > message d'erreur obtenu
>> >
>> > "Un appel de fonction sur la partie gauche d'une affcetation doit
> renvoyer
>> > un type variant ou object"
>> >
>> > QUID ?
>> >
>> >
>> > "Jean-marc" a écrit dans le message


de
>> > news:ep7ko2$iu6$
>> >> "Driss HANIB" wrote in message
>> >> news:%
>> >> > Bonjour à tous
>> >> >
>> >> > je charge dans un treeview une liste de données et je selectionne
>> >> > par
>> > prog
>> >> > un noeud particulier.
>> >> > le problème est que si ma liste dépasse la hauteur du treeview et
>> >> > que
>> >> > le
>> >> > noeud est "en dessous" de la pertie visible...
>> >> > et bien, malgré la sélection jen le vois pas ..
>> >> > comment peut on faire ensorte qu'un noeud particulier soit dans la
>> > fenetre
>> >> > visible du TV.
>> >> > Comme la commande TopRow du Flexgrid
>> >>
>> >> Hello Driss,
>> >>
>> >> Tu as la propriété EnsureVisible de chaque Node:
>> >>
>> >> TreeView1.Nodes(1).EnsureVisible = True
>> >>
>> >> // Sorry si le message est en double...
>> >>
>> >> --
>> >> Jean-marc
>> >>
>> >>
>> >
>> >
>>
>>
>
>