Pole může mít jako index vždycky jen integer. Existuje ale asociativní pole, kde jako klíč k záznamu může být třeba string. Změňte deklaraci pole pnl na tuto:
Dim pnl As New Dictionary(Of String, Panel)
Tím řeknete, že klíče budou typu String a objekty uvnitř typu Panel. Pracuje se s tím velmi podobně jako s polem. Akorát pak doporučuji změnit tyto sekvence:
pnl(i) = New Panel
pnl(i).Name = "pnl1"
pnl(i).Width = 100
pnl(i).Height = 100
pnl(i).BackColor = Color.Black
na nějaké jiné, které by pořád nepřistupovaly do toho pole - zbytečně se to tím zpomaluje. Nejlepší je udělat na to novou proměnnou a do dictionary to přiřadit až potom.
Dim newPnl = new Panel()
newPnl.Name = "pnl1"
...
pnl("klic") = newPnl
|