# Conversion difficile d'un ListBox hierarchique vers un DesktopListBox

**URL:** <https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272>\
**Category:** Français\
**Created:** [July 21, 2022, 1:48pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272 "2022-07-21T13:48:11Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 21, 2022, 1:48pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/1 "2022-07-21T13:48:11Z")

</div>

Bonjour,

J’essaie de traduire un code d’exemple de ListBox hierarchique (possibilité de développer/réduire certaines branches) qui comprend des Checkbox sur chaque item.  
J’ai un exemple complet (qui date) avec un Listbox qui fonctionne mais quand je passe le code sur un nouveau “DesktopListBox”, de nombreuses commandes ont été modifiées depuis et j’ai des messages d’erreur sur pratiquement toutes les lignes !, même celles que j’ai adapté avec les nouvelles commandes. c’est ce que je trouve curieux.Par exemple j’ai très souvent le message  
**Type “DesktopListBox” has no member named** “CellTypes” sur la ligne

```auto
Me.ColumnTypeAt(0) = ListBox2.CellTypes.Checkbox

```

Voici le code complet de l’évènement ListBox2.Opening :

```auto
Me.ColumnTypeAt(0) = ListBox2.CellTypes.Checkbox //Listbox.TypeCheckbox

Me.AddFolder "Dossier 1"
Me.RowTagAt(Me.LastIndex) = "f1" //LastRowIndex ou LastColumnIndex ou LastAddedRowIndex

Me.AddFolder "Dossier 2"
Me.RowTagAt(Me.LastIndex) = "f2"

Me.AddFolder "Dossier 3"
Me.RowTagAt(Me.LastIndex) = "f3"

```

La documentation Xojo mentionne “…La ligne doit avoir été ajoutée avec la méthode AddFolder”, ce qui est le cas ci-dessus mais ou est cette méthode ? je ne l’ai pas trouvé dans la Doc en ligne . Je ne sais pas si la syntaxe est encore bonne ou si elle a changée.

Même problème pour les 2 autres événements “CellAction” et “RowExpanded” (ci-dessous) :

```auto
For i As Integer = 1 To 5
    Me.AddRowAt Me.Cell(row, 0) + " - Subentry " + CStr(i)
  Me.RowTagAt(Me.LastIndex) = Me.RowTagAt(row)
  Next

```

Merci pour votre aide.

---

<div class="post-metadata">

**Author:** ![Valdemar\_De\_SOUSA](https://forum.xojo.com/user_avatar/forum.xojo.com/valdemar_de_sousa/32/21374_2.png) [@Valdemar\_De\_SOUSA](https://forum.xojo.com/u/Valdemar_De_SOUSA)\
**Post date:** [July 21, 2022, 2:19pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/2 "2022-07-21T14:19:57Z")

</div>

> [@Denis\_DUBOIS](#):
>
> ```auto
> Me.ColumnTypeAt(0) = ListBox2.CellTypes.Checkbox //Listbox.TypeCheckbox
> 
> Me.AddFolder "Dossier 1"
> Me.RowTagAt(Me.LastIndex) = "f1" //LastRowIndex ou LastColumnIndex ou LastAddedRowIndex
> 
> Me.AddFolder "Dossier 2"
> Me.RowTagAt(Me.LastIndex) = "f2"
> 
> Me.AddFolder "Dossier 3"
> Me.RowTagAt(Me.LastIndex) = "f3"
> 
> ```

Et voici :

> Me.ColumnTypeAt(0) = DesktopListBox.CellTypes.CheckBox
> 
> Me.AddExpandableRow “Dossier 1”  
> Me.RowTagAt(Me.LastRowIndex) = “f1” //LastRowIndex ou LastColumnIndex ou LastAddedRowIndex
> 
> Me.AddExpandableRow “Dossier 2”  
> Me.RowTagAt(Me.LastRowIndex) = “f2”
> 
> Me.AddExpandableRow “Dossier 3”  
> Me.RowTagAt(Me.LastRowIndex) = “f3”

Et il faut que dans le panneau de l’inspecteur tu aies activé l’option “Allow Expandable Rows”

Tu as un très bon exemple dans : Examples \> Desktop \> Controls \> Listbox \> SourceListExample.xojo\_binary\_project  
🙂

---

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 21, 2022, 3:01pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/3 "2022-07-21T15:01:05Z")

</div>

Merci @Valdemar_De_SOUSA pour ta réponse mais “Allow Expendable Rows” est pourtant bien activé sur mon ListBox ! Sinon, le code te parait correct ?

---

<div class="post-metadata">

**Author:** ![Valdemar\_De\_SOUSA](https://forum.xojo.com/user_avatar/forum.xojo.com/valdemar_de_sousa/32/21374_2.png) [@Valdemar\_De\_SOUSA](https://forum.xojo.com/u/Valdemar_De_SOUSA)\
**Post date:** [July 21, 2022, 3:13pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/4 "2022-07-21T15:13:40Z")

</div>

As-tu regardé l’exemple contenu dans la version 2022r1.1 ?

---

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 21, 2022, 3:50pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/6 "2022-07-21T15:50:38Z")

</div>

Le nom est “ListBoxExample.xojo\_binary\_project” (et non SourceListExample). Je regarde cela de plus prêt.

---

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 21, 2022, 4:05pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/7 "2022-07-21T16:05:09Z")

</div>

Oui je vois que le code est très différent. Il a beaucoup évolué.  
Il me reste à adapter l’événement ‘CellAction’ dont je ne trouve pas l’équivalent.

```auto
//CellAction Event
If Me.RowIsFolder(row) Then 
  If Me.ExpandedRowAt(row) Then //Expanded(row)
    
    For i As Integer = row + 1 To Me.ListCount - 1
            If Me.RowTagAt(i) = Me.RowTagAt(row) Then Me.CellCheckBoxStateAt(i, 0) = Me.CellCheckBoxStateAt(row, column)
          Next
      End If
End If

```

---

<div class="post-metadata">

**Author:** ![Valdemar\_De\_SOUSA](https://forum.xojo.com/user_avatar/forum.xojo.com/valdemar_de_sousa/32/21374_2.png) [@Valdemar\_De\_SOUSA](https://forum.xojo.com/u/Valdemar_De_SOUSA)\
**Post date:** [July 21, 2022, 4:21pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/8 "2022-07-21T16:21:02Z")

</div>

Utilise : **CellPressed** (Row As [Integer], Column As [Integer], X As [Integer], Y As [Integer]) As [Boolean]

---

<div class="post-metadata">

**Author:** ![Valdemar\_De\_SOUSA](https://forum.xojo.com/user_avatar/forum.xojo.com/valdemar_de_sousa/32/21374_2.png) [@Valdemar\_De\_SOUSA](https://forum.xojo.com/u/Valdemar_De_SOUSA)\
**Post date:** [July 21, 2022, 4:27pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/9 "2022-07-21T16:27:16Z")

</div>

ou **CellAction** (Row As [Integer], Column As [Integer])

---

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 22, 2022, 9:19am UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/10 "2022-07-22T09:19:05Z")

</div>

Bonjour,  
Bon, je galère toujours avec les ListBox hirarchiques contenant des Checkbox !  
J’ai 2 questions principales :  
Comment tester si c’est un élément de ListBox (hierarchique) est “extensible” ? (avec la petite flèche de déploiement \>)  
La commande suivante semble ne plus être reconnue:

```auto
If ListBox1.ExpandedRowAt(row) Then... 

```

et dans ce cas, lorsque je coche l’élément “parent”, comment Checker (cocher) tous ses éléments filles (uniquement) ?

```auto
For i As Integer = row + 1 To Me.RowCount - 1
   Me.CellCheckBoxStateAt(i, 0) = Me.CellCheckBoxStateAt(row, column)
  Next

```

Coche tous les checkbox, à partir de celui coché, sans distinction !

Merci pour votre contribution,

---

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 23, 2022, 3:07pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/11 "2022-07-23T15:07:45Z")

</div>

Bonjour à tous,  
J’ai avancé sur mon projet, même si je rencontre encore pas mal d’écueil. Le principal, est comment ajouter des éléments (items) filles, dans l’évènement “RowExpanded” ? car lorsque l’on développe une branche, les numéros de lignes (row) changent ! A chaque fois qu’une branche est développée chaque numéro de ligne est incrémentée d’autant d’éléments filles dans la branche. L’idéal serait d’ajouter les éléments directement dans l’événement Opening, mais comment ?  
Mon code provisoire est donc inopérant:

```auto
Select case row
Case 2
  Me.AddRow("Index 2 Child 0")
Case 3
  Me.AddRow("index 3 - Child 0")
Case 5
  Me.AddRow("Index 5 Child 0")
Case Else
  msgbox("index inconnu !")
End Select

```

Help please !

---

<div class="post-metadata">

**Author:** ![Denis\_DUBOIS](https://forum.xojo.com/letter_avatar_proxy/v4/letter/d/e9bcb4/32.png) [@Denis\_DUBOIS](https://forum.xojo.com/u/Denis_DUBOIS)\
**Post date:** [July 23, 2022, 3:33pm UTC](https://forum.xojo.com/t/conversion-difficile-dun-listbox-hierarchique-vers-un-desktoplistbox/71272/12 "2022-07-23T15:33:19Z")

</div>

Finalement ça marche en prenant le nom des éléments parents:

```auto
Select Case Me.CellTextAt(row)

```
