VB Cambiare Immagini ad alcune PictureBox

Stato
Discussione chiusa ad ulteriori risposte.

minotaurus7

Utente Silver
30 Gennaio 2013
44
19
2
64
Saluto tutto il Forum........
Ho un problema dal quale non riesco a venirne fuori.....
Ho una collection di PictureBox (50 per l'esattezza) raggruppate all'interno di una GroupBox, nel momento in cui leggo il numero archiviato dentro un DB Access, dovrei fare in modo che allo stesso numero di PictureBox cambi l'immagine.
Es: Numero letto=12, PictureBox alle quali cambiare immagine=12.

Ho provato così:
Codice:
     For Each Ctrl In GB5.Controls
            If (Ctrl.GetType() Is GetType(PictureBox)) Then
                Dim pbox As PictureBox = CType(Ctrl, PictureBox)
                For Acc As Integer = 0 To Conta_Led - 1
                    pbox.Image = My.Resources.LedVerde_Acceso16
                Next
            End If
        Next

Ma l'immagine cambia a tutta la collection di PictureBox......
Stò usando Visual Studio 2013 ed il Linguaggio è VB.Net
Avete idee in merito???
Vi ringrazio fin da ora.
 
Ultima modifica:
Scusa la domanda, non so se sono io ad aver capito male il tuo problema o altro, ma che senso ha il ciclo for interno visto che la collezione di PicturBox gli enumeri già nel ciclo for each? In'oltre ogni iterazioni del ciclo for reimposta l'immagine dell'ogetto PicturBox pbox.

Non ho provato il tuo codice, ma se non sbaglio, cosi facendo, per ogni picturBox gli stai dicendo, di impostare l'immagine in My.Resources.LedVerde_Acceso16 ( operazione che, per ogni picturBox nella collezione, esegui più volte, tramite il ciclo for interno ), sempre se non vado errato tutto questo procedimento non ha senso, al posto del ciclo for, dovresti controllare, se la PicturBox è l'ultima della lista ( in ogni caso per vedere quello che stai facendo, se è o non è quello che penso io, esegui il debug del programma isctruzione dopo istruzione )

Io farei senza nessun ciclo, considerando ché, l'ultimo elemento di GB5.Controls è una PicturBox, eseguirei semplicemente questa istruzione
Codice:
Ctype(GB5.Controls(GBS.Controls.Count - 1), PicturBox).Image = My.Resources.LedVerde_Acceso16
 
Ciao Sevenjeak........
Ho provato il tuo comando che funziona benissimo........ Unica cosa mi cambia l'immagine solo ad una picturebox, mentre io volevo che in base al numero che ho in archivio, lui mi sostituisse le immagini ad altrettante picturebox.
comunque l'ho adattata cosi e funziona benissimo, ma se hai un'idea migliore, dimmela........
Ti/vi mostro il codice:

Codice:
For Acc = 1 To Conta_Led
     CType(GB5.Controls(GB5.Controls.Count - Acc), PictureBox).Image = My.Resources.LedVerde_Acceso16
Next
Comunque Grazie per il tuo aiuto fondamentale.
 
Allora scusa ma non ho capito bene cosa dovresti fare? a che ti serve quel ciclo for? ( che presumo te metta all'interno del for each ), l'intendo non erà quello di cambiare immagine solo all'ultima PicturBox?
 
No............. Il ciclo funziona benissimo così come lo vedi. Non devo cambiare l'immagine all'ultima Picturebox, ma a tante quanto è il num. che leggo dal DB Access. Adesso solo con il tuo comando cambiava immagine solo all'ultima Pic, facendo quel ciclo For, riesco a cambiarle esattamente al numero che ho in archivio.
Spero di essermi spiegato meglio. Scusami e Grazie ancora per il tuo fondamentale aiuto.
Grazie.
 
Stato
Discussione chiusa ad ulteriori risposte.