Il tutto funziona, i pulsanti vengono correttamente visualizzati come voglio io etc. Il problema sussiste sulla gestione degli eventi.
Ho provato a mettere in un modulo:
Codice sorgente - presumibilmente VB.NET
PublicWithEvents linkbutton As Button
PublicSub linkbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles linkbutton.Click'Qui ti ho fatto un esempio di gestione dell'evento Click del NuovoButton
MsgBox(linkbutton.Text.Remove(0, 10))
EndSub
ma l'evento non viene mai rilevato. Qualcuno saprebbe aiutarmi?
Ultima modifica effettuata da Iohoilpotere il 23/12/2010 alle 18:12
LinkButton.Name="Button"'Non so a cosa ti serve dare un nome a tutti questi controlli..
LinkButton.Text= Directories(I).Remove(0, 10)
LinkButton.Height= 25
LinkButton.Width= 170
LinkButton.Location=New Point(0, I * 25 + 5)
Me.Controls.Add(LinkButton)
I = I + 1
Next
EndSub
però tieni conto che ti genera, come vedrai provando il codice, un'eccezione di tipo NullReference, poichè tu crei Withevents un controllo button, ma non lo istanzi utilizzando New, ed inoltre nel codice che hai scritto non è nemmeno il controllo che genera l'evento, dato che a generarlo è uno dei pulsanti che crei a runtime
Il codice, secondo le mie conoscenze, va cambiato in questo modo
Codice sorgente - presumibilmente VB.NET
PublicSub linkbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)'NOTA CHE QUA HO TOLTO L'HANDLES CHE NON SERVE
MsgBox(sender.Text.Remove(0, 10))
EndSub
PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)HandlesMyBase.Load
Dim Directories()AsString= IO.Directory.GetDirectories("F:\report")
'Qua ho tolto l'assegnazione del nome, che secondo me non serve, dato che creando i controlli tutti con lo stesso nome, ad ognuno verrà assegnato un nome comunque diverso, e non potresti raggiungerlo (per quello che so, poi correggetemi se sbaglio)
LinkButton.Text= Directories(I).Remove(0, 10)
LinkButton.Height= 25
LinkButton.Width= 170
LinkButton.Location=New Point(0, I * 25 + 5)
Me.Controls.Add(LinkButton)
I = I + 1
Next
EndSub
nota che per abbreviare tutto ho fatto
Codice sorgente - presumibilmente C# / VB.NET
Dim Directories() As String = IO.Directory.GetDirectories("F:\report")
Ultima modifica effettuata da dedalux il 23/12/2010 alle 23:04