Jos formilla olisi vaikka picturebox1 ja picturebox2 niin miten saisin tuon numeron muuttumaan jossakin tapahtumassa? esim.
for i = 1 to 64
picturebox[numeron vaihto toiminto].backcolor = color.blue
next i
Indeksoi ne lootat, eli kopioi se yksi loota, pastea formille ja kun vb kysyy halutaanko luoda kontrollitaulukko, vastaa joo. Sitten niille tulee indeksejä, joilla niit viitataan kuin taulukkoa
' loota on picturebox-arrayn nimi. For i = 0 to loota.UBound ' olikoha UBound, ei muista, kokeile :) loota(i).BackColor = 0 Next
Ja huomaa, että indeksit alkavat nollasta.
Eipä tullu sellasta kyselyä! kieli: vb.net
Hörh. No taas nähdään, että ensiks kannattaa myös kertoa se kieli. Kokeile sit käsin antaa jollekin kontrollille indeksi, varmaan dotnet-idessäkin on se kontrollin ominaisuudet -lista..? Siitä Index-kohtaan 0.
Voithan silti tehdä taulukon pictureboxistakin aivan kuin mistä tahansa muustakin oliotyypistä. Niin se on viisainta tehdä.
kertokaa todella tarkkaan, koska joudun aina kysymään erikseen siitä minkä jo kerroitte lyhyesti! Eli miten ne indexoidaan?
Googlesta ja msdn kirjastosta ei tahdo löytää millään oikeaa vastausta kun ne kertoo vaan jostain palvelimista...
'Tee 64 pictureboxin taulukko. En ole varma konstruktorista Dim pictures(64) As New Picturebox 'Muutetaan kaikkien taulukoiden pictureboxien väri For i=0 To 63 pictures(i).BackColor = Color.Lawngreen Next i 'Lisätään joku picturebox formille. En kylläkään voi tarkistaa metodin oikeellisuutta dokumentaatiosta nyt, mutta jokin tämäntapainen se oli. Code completion auttaa. MainForm.add(pictures(i))
Kuten moneen kertaan jo mainittu, hatusta vedettyä ja testaamatonta koodia.
eipä toiminu! New:tä ei voi käyttää arrayn kanssa!
Tämä on sitten testattua koodia ja toimii varmasti. Sovella tästä.
'Initialisoidaan taulukko Private pic(5) As PictureBox Private Sub MainFormLoad(sender As System.Object, e As System.EventArgs) Dim i As Byte For i=0 To 4 'Luodaan picturebox pic(i) = New PictureBox() 'Ja asetetaan sijainti sekä koko pic(i).Location = New System.Drawing.Point(i*60, 64) pic(i).Size = New System.Drawing.Size(50, 104) 'Joka toinen boksi mustaksi ja joka toinen punaiseksi If i Mod 2 Then pic(i).BackColor = Color.Black Else pic(i).BackCOlor = Color.red End If 'Sekä lisätään formille Me.Controls.Add(pic(i)) Next End Sub
Eli tämä lätkäisee punaisia ja mustia pictureboxeja formille.
kiitos, kokeilen heti kun jatkan sitä shakki juttua!
Aihe on jo aika vanha, joten et voi enää vastata siihen.