Bonjour à tous,

Je suis débutant en VB.NET et je rencontre actuellement un problème lors de l'attribution d'EventHandlers à des contrôles crées dynamiquement.
En résumé à chaque création d'une nouvelle DropDownItem dans le menu de mon application, je veux lui attribuer l'exécution d'une Sub qui prend des arguments dépendant de la DropDownItem cliquée.
Par exemple si je clique sur "Calculateur n°1", une fenêtre aux caractéristiques du calculateur n°1 doit être crée pas la Sub. Ainsi de suite avec "Calculateur n°2" etc...

Voici le bout code en question:

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
For i As Integer = 0 To NumberOfECU - 1
	Dim j As Integer
    	j = i
 
    	TCFMonitoringTool.CalculateursToolStripMenuItem.DropDownItems.Add(menuArray(i, 2)) 'Création dynamique du menu des Calculateurs
    	AddHandler TCFMonitoringTool.CalculateursToolStripMenuItem.DropDownItems.Item(i).Click, Sub(senderObj, args) _
                beforeCreateECU(TCFMonitoringTool.CalculateursToolStripMenuItem.DropDownItems.Item(j), j)
 
Next
 
 
Sub beforeCreateECU(ByVal menuItem As ToolStripItem, ByVal ECUline As Integer)
 
     	Dim i As Integer = 0
     	Dim ECUCreated As Boolean = False
 
     	While ECUCreated = False
 
         	If IsNothing(ECU(ECUline, i)) = False AndAlso ECU(ECUline, i).Text = "" Then
 
             		createECU(ECUline, i, menuItem)
             		ECUCreated = True
 
         	ElseIf IsNothing(ECU(ECUline, i)) = True Then
 
             		createECU(ECUline, i, menuItem)
             		ECUCreated = True
         	Else
             		i = i + 1
         	End If
     	End While
 
 End Sub


Suite à ceci, j'ai bien les DropDownItems qui apparaissent dans le menu de l'application, avec les nom corrects, mais lorsque je clique par exemple sur celle qui s'appelle "Calculateur n°1", c'est une fenêtre à l'image de "Calculateur n°6" qui apparaît. C'est à dire le dernier calculateur de ma liste, donc la dernière itération de la boucle For.
Pourquoi les arguments envoyés à ma Sub sont systématiquement les mêmes, quel que soit la DropDownItem cliquée? Pourtant dans AddHandler je précise bien que chaque Item(i) doit avoir sa propre Sub(argument1(i), argument2(i)) associée?

Merci d'avance pour votre aide.