Per ottenere informazioni sull'oggetto che ha scatenato un determinato evento puoi usare LAST che, come dice il nome, ritorna il riferimento all'oggetto che ha scatenato l'ultimo evento. Per fare ciò devi assegnare ad ogni oggetto creato, nel tuo caso i pulsanti, un
osservatore che intercetta gli eventi scatenati da esso. Ad ogni osservatore puoi associare quanti oggetti vuoi.
Nel tuo caso potresti:
Public Sub Button1_Click()
Dim btn As Button
Dim i As Integer
Dim aFiles As String[] = Dir(User.home &/ "Scrivania", "*", gb.File)
For i = 0 To aFiles.Max
' Creo il pulsante ed imposto il suo
' osservatore eventi
With btn = New Button(Me) As "BTN"
.Name = "btn" & CStr(i)
.Text = File.BaseName(aFiles[i])
.h = 28
.W = 100
.x = 5
.y = 20 + .h * i
.Visible = True
End With
Next
End
Public Sub BTN_Click()
' Intercetto il click e determino quale pulsante è stato attivato
' grazie a LAST.
Print "Hai cliccato sul bottone: " & Last.Name
End
La stessa cosa puoi ottenerla con la Proprietà
Gruppo nell'IDE.