Bonjour à tous,

Dans cadre d'une application de gestion, je dois crééer une multitude de listeBox (Nombre inconnu) en fonction d'une table de ma base de données. Puis, remplir ces listebox en fonction d'une autre table.
L'exemple pour mon cas est le suivant :

Je dois afficher l'ensemble des chefs de mon service (un chef = une listebox) puis, pour chaque listebox, les remplir avec les employés travaillant pour ces chefs.
Donc j'appuie bien sur le fait que les listebox sont créées dynamiquement.
Jusque ici, pas de problèmes.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
dim liste(0) as listbox
dim lab(0) as label
dim req as string = "select Nom from Chef" 'selection de tout les noms de chefs de ma table
Dim Cd as New SqlCommand(req,cn) 'où cn est ma chaine de connexion.
dim rd as SqlDataReader
dim rd2 as SqlDataReader
rd = cd.executeReader()
 
while rd.read()
 
      Redim liste(liste.lenght +1)
      Redim lab(lab.lenght +1)
 
      liste(i) = New ListBox 'Ajout d'une nouvelle ListeBox
      lab(i) = new label ' label qui se place au dessus de la liste et qui affichera le nom du chef
 
      liste(i).location = new Point(z*140,20) ' place les listebox les unes a cotes des autres
      liste(i).allowdrop = true ' Accepte de recevoir des objets du drag&drop
 
      lab(i).location = new Point(z*140,15)
      lab(i).text = "Chef_en_cours"
 
      dim reqAgent as string = "select nomAgents from Agent where Chef='Chef_en_cours' "
      dim cd2 as new SqlCommand(reqAgent,cn)
 
     rd2 = cd2.executeReader
 
     while rd2.read()
           liste(i).items.add(rd2.GetValue("nom_agent")) 'ajout des agents dans la liste en cours
     end while
 
     me.controls.add(list(i)) 'Ajoute la liste dans le form
     me.controls.add(lab(i)) 'ajoute le label dans le form
 
    i = i+1
    z = z+1
Voila ce que représente ce que je viens de dire en code vb.net.

Maintenant, le problème est que je voudrais pouvoir par le Drag&Drop sélctionner un agent et le déplacer vers une autre listeBox (d'où l'application de gestion).

En temps normal, il suffit d'ajouter du code pour les évenements MouseDown, DragOver et dragDrop pour les listes affichées mais comme ici, je n'ai pas physiquement les listebox, je ne sais pas comment on peut ajouter le code pour ces évenements depuis le code que je viens de vous écrire.

Pouvez vous m'aider ?

Merci d'avance,

Au plaisir de vous lire