Nie programuje w basicu, ale dziwnie próbujesz to zrobić. Nie lepiej byłoby zrobić tablice o dwóch wymiarach przechowujących referencje/wskaźniki na obiekty i wtedy napisać funkcję przyjmującą dwa inty (współrzędne) a zwracającą odniesienie do obiektu? W jakimś javopodobnym pseudokodzie byłoby to mniej-więcej tak:
Object[][] ref = new Object[3][3];
... {
ref[0][0] = ...
ref[0][1] = ...
...
}
public Object getRefByCoord(int x, int y) {
return ref[x][y];
}
Ogólnie rzecz biorąc, nie uzależniałbym funkcjonalności kodu od nazwy (jeśli to możliwe), bo nazwa to String, a w nim łatwo o jakąś literówkę i debugowanie programu może potem trwać godzinami.
I po co w ogóle więcej niż jeden PictureBox? Na 99% coś takiego nie jest w ogóle potrzebne, bo nawet jeśli to ma być jakaś “szachownica”, to i tak lepiej operować na jednym obrazie, a potem go przypisać do jednego PictureBoxa.
Zrobiłem tak jak podpowiedział mi użytkownik kostek135, lecz nie wiem jak zrobić że po kliknięciu na jakiś kwadrat uruchamiała mi się moja procedura,
która pobiera kordy kontrolki (indeksu z tablicy).
Nie do końca zrozumiałem pomysł somekind-a. Jeżeli to ma być mapa na której każdy kwadrat ma pokazywać co innego to ile trzeba by zrobić kombinacji,
żeby zapisać to w jednej kontrolce PictureBox…
Dla jasności umieszczam stworzony kod:
Public Class Form1
Dim w As Byte = 0
Dim k As Byte = 0
Dim wys As Integer = 12
Dim szer As Integer = 12
Dim tablica(12, 12) As PictureBox
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
For i As Byte = 1 To 144
tablica(w, k) = New PictureBox()
tablica(w, k).Image = My.Resources._10
tablica(w, k).SizeMode = PictureBoxSizeMode.AutoSize
tablica(w, k).Location = New System.Drawing.Point(szer, wys)
Controls.Add(tablica(w, k))
w = w + 1
wys = wys + 40
If w = 12 Then
w = 0
k = k + 1
wys = 12
szer = szer + 40
End If
Next
End Sub
End Class