Oppure

Loading
03/08/09 21:51
antometal
è la prima volta che posto in questa sezione, sono nuovo al vb.net e vi prego di comprendere la mia ignoranza...

so che non si può creare un array di controlli come in vb6, ma si può creare una collezione
sul web ho trovato questo codice:
Dim lab As Label
Dim i As Integer
Dim coll As New List(Of Label)

For i = 1 To 30
    lab = New Label
    lab.Text = i.ToString

    'imposta le altre proprietà della label
    '...

    lab.Visible = True

    'aggiunge la label alla collection
    coll.Add(lab)
Next


ho aggiunto anche le proprietà top, left, height, widht, ma nel form non ci sono...
dove sbaglio?
dove scrivo il codice riferito a questi controlli?
aaa
03/08/09 21:57
ruggy94
Se ho capito bene, il problema è che alla fine non vedi le label nel form giusto? Questo perchè devi aggiungerle ai controlli del form appunto, con Form.Controls.Add
aaa
03/08/09 22:07
antometal
grazie 1000 efficace come sempre

e il codice per i controlli dove lo metto?
aaa
03/08/09 22:41
ruggy94
Postato originariamente da antometal:

grazie 1000 efficace come sempre

e il codice per i controlli dove lo metto?

Dipende dove ti serve :D
Puoi usarlo in qualsiasi momento. Chiaramente se lo vuoi all'avvio del programma, nel Form_Load, altrimenti...in un qualsiasi altro metodo.
aaa
03/08/09 22:51
antometal
8-|:-|8-|:-|8-|:-|:d

allora io devo fare un array di button e fin qui ok
ora devo mettere il codice da eseguire all' evento click di un qualsiesi di questi button(mi serve anche l' index del button che è stato premuto), ma questo codice come, dove lo metto?

un vago esempio potrebbe risolvere
scusa l' ignoranza...:(
Ultima modifica effettuata da antometal 03/08/09 22:52
aaa
03/08/09 23:09
ruggy94
Postato originariamente da antometal:

8-|:-|8-|:-|8-|:-|:d

allora io devo fare un array di button e fin qui ok
ora devo mettere il codice da eseguire all' evento click di un qualsiesi di questi button(mi serve anche l' index del button che è stato premuto), ma questo codice come, dove lo metto?

un vago esempio potrebbe risolvere
scusa l' ignoranza...:(

Ma scusa che :D
Comunque devi fare in modo che un metodo creato da te (ad esempio Button_Click) gestisca (handles) il click di tutti quei button.
Al momento della creazione dei button (nel ciclo for) aggiungi anche (ammettendo che nel for ogni bottone si chiami pulsante)
addhandler pulsante.click, AddressOf Button_Click

Poi devi definire questo metodo Button_Click()...(ammettiamo che debba apparire una msgbox con il nome del bottone cliccato)
Private Sub Button_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Messagebox.show(sender.name)
End Sub

Spero di essere stato chiaro...se non fosse così, posta pure ;)
aaa
03/08/09 23:16
antometal
Postato originariamente da ruggy94:

...

Spero di essere stato chiaro...se non fosse così, posta pure ;)


chiaro come il sole

un ultima cosa, le msgbox sono vuote, come faccio a sapere quale button è stato premuto?
aaa
03/08/09 23:25
ruggy94
Postato originariamente da antometal:
un ultima cosa, le msgbox sono vuote, come faccio a sapere quale button è stato premuto?

Sono vuote perchè nella creazione dei button non gli assegni un nome. Metti ad esempio (nel ciclo)
For I = ....
...
pulsante.name="button" & I.tostring
...
Next
aaa