Ciao a tutti,

Con le due seguenti funzioni creo dinamicamente delle label, ho cercato di aggiungere un evento handler dinamico ma non sono riuscito perche mi dice che AddressOf deve essere senza parentevi,
Ma come posso passargli il mio parametro allora?

codice:
    Private Sub ListProfile_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim Sql As String
        Dim dt As New DataTable
        Dim ds As New DataSet

        Dim myfont As New Font("Microsoft Sans Serif", 10, FontStyle.Bold)
        Dim CNT As Integer = 0
        Dim X As Integer = 30
        Dim Y As Integer = 440

        If GeneralModel.language = "ITA" Then
            lbInfo.Text = "INFORMAZIONI E " + vbCrLf + "DATI ANAGRAFICI"
            lbRilevamenti.Text = "RILEVAMENTI " + vbCrLf + "SU VETTURA"
            lbNote.Text = "Note"
        ElseIf GeneralModel.language = "ENG" Then
            lbInfo.Text = "PERSONAL DATA " + vbCrLf + "AND INFORMATION"
            lbRilevamenti.Text = "PHOTOGRAPHS " + vbCrLf + "OF THE VEHICLE"
            lbNote.Text = "Annotation"
        End If
        lbName.Text = GeneralModel.NameModel + " - " + GeneralModel.NameDoc

        '-------------------------RILEVAMENTI SU VETTURA
        db.Connetti()

        CNT = 0
        X = 30
        Y = 440

        Sql = "SELECT main_code,sub_code,desc_ita,desc_eng,testo,note_keypoint,check_keypoint "
        Sql = Sql & "FROM NewMac_Profili "
        Sql = Sql & "WHERE newmac_id = " & CInt(GeneralModel.IdDoc) & " AND sub_code = '00' AND LEFT(main_code,1) <> 'A' "
        Sql = Sql & "ORDER BY main_code ASC, sub_code ASC "

        Dim da As New OleDb.OleDbDataAdapter(Sql, db.istance)
        da.Fill(dt)

        Dim myDelegate As New System.EventHandler(AddressOf MainCat_Click(1))
        Dim temp As Label() = New Label(dt.Rows.Count) {}

        For Each myRows In dt.Rows
            temp(CNT) = New Label
            With temp(CNT)
                ' Set the properties of the Label here ...
                .Location = New System.Drawing.Point(X, Y)
                .Size = New System.Drawing.Size(300, 20)
                .TextAlign = ContentAlignment.MiddleLeft
                .ForeColor = System.Drawing.Color.White
                .BackColor = System.Drawing.Color.Transparent
                .Font = myfont
                .Cursor = Cursors.Hand

                ' Now, tell the Label what function to use when clicked.
                AddHandler .Click, myDelegate

            End With

            'b.Click+=new EventHandler(b_Click);
            If GeneralModel.language = "ITA" Then
                temp(CNT).Text = myRows.Item("desc_ita")
            ElseIf GeneralModel.language = "ENG" Then
                temp(CNT).Text = myRows.Item("desc_eng")
            End If

            Me.Controls.Add(temp(CNT))
            CNT += 1
            Y = Y + 20
        Next
        db.Disconnetti()
        '-------------------------RILEVAMENTI SU VETTURA

        '-------------------------INFORMAZIONI E DATI ANAGRAFICI
        db.Connetti()

        ds.Clear()
        dt.Clear()
        Erase temp

        CNT = 0
        X = 30
        Y = 330

        Sql = "SELECT main_code,sub_code,desc_ita,desc_eng,testo,note_keypoint,check_keypoint "
        Sql = Sql & "FROM NewMac_Profili "
        Sql = Sql & "WHERE newmac_id = " & CInt(GeneralModel.IdDoc) & " AND sub_code = '00' AND LEFT(main_code,1) = 'A' "
        Sql = Sql & "ORDER BY main_code ASC, sub_code ASC "

        da.SelectCommand = New OleDbCommand(Sql, db.istance)
        da.Fill(dt)

        temp = New Label(dt.Rows.Count) {}

        For Each myRows In dt.Rows
            temp(CNT) = New Label
            temp(CNT).Location = New System.Drawing.Point(X, Y)
            temp(CNT).Size = New System.Drawing.Size(300, 20)
            temp(CNT).TextAlign = ContentAlignment.MiddleLeft
            temp(CNT).ForeColor = System.Drawing.Color.White
            temp(CNT).BackColor = System.Drawing.Color.Transparent
            temp(CNT).Font = myfont
            If GeneralModel.language = "ITA" Then
                temp(CNT).Text = myRows.Item("desc_ita")
            ElseIf GeneralModel.language = "ENG" Then
                temp(CNT).Text = myRows.Item("desc_eng")
            End If

            Me.Controls.Add(temp(CNT))
            CNT += 1
            Y = Y + 20
        Next
        db.Disconnetti()
        '-------------------------INFORMAZIONI E DATI ANAGRAFICI
    End Sub
    Private Sub MainCat_Click(ByVal param As Integer)
        MessageBox.Show("Click")
    End Sub