PDA

View Full Version : [VB2005] Array di Controls


Vento divino
04-07-2006, 15:58
Mi scuso se il problema vi potrà sembrare demenziale, ma del VB purtroppo io non ci capisco niente :cry:
Il problema è il seguente: devo creare 10 x 10 picturebox e successivamente accedere e modificare delle proprietà di una (rnd) di queste picturebox.
Avevo pensato che la soluzione più naturale fosse una matrice 10x10, ma evidentemente c'è qualcosa che non mi entra in testa:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim i As Integer = 10
Dim pic(i) As PictureBox
Dim x, y As Integer
x = 5
y = 5

Dim prova As New PictureBox
prova.Size = New System.Drawing.Point(20, 20)
prova.BackColor = Color.Green
prova.Location = New System.Drawing.Point(5, 5)
Me.Controls.Add(prova)


For i = 0 To 10

'pic(i).Location = New System.Drawing.Point(5, 5)
pic(i).BackColor = Color.Green
pic(i).Size = New System.Drawing.Point(10, 7)
pic(i).Location = New System.Drawing.Point(x, y)
x = i + 12
'y = i + 12
Me.Controls.Add(pic(i))


Next
Tralasciando per un attimo il 10x10, perchè la PictureBox "prova" non dà problemi, mentre la "pic(i)" mi dà come errore: Object reference not set to an instance of an object.
ogni volta che scrivo una proprietà?

Grazie in anticipo a chiunque mi risponderà :)

Fenomeno85
04-07-2006, 19:55
se è come java te li hai solo dei reference a picture ... quindi per ogni pic(i) devi allocare la picture.


~§~ Sempre E Solo Lei ~§~

Vento divino
05-07-2006, 10:46
per ogni pic(i) devi allocare la picture.
Eh? :mbe:

uReverendo
05-07-2006, 12:45
Originariamente inviato da Fenomeno85
per ogni pic(i) devi allocare la picture.
Questo significa che all'interno del ciclo for dei aggiungere la seguente riga:
pic(i) = New PictureBox

Vento divino
05-07-2006, 12:52
Oddio era così semplice?
Son proprio niubbo :stordita:

Grazie :D