in che modo hai risolto?
per quanto riguarda il problema che quando facevi pb =form4.picturebox1 ho trovato, e c'è voluto un pò, una possibile spiegazione(non sicura):
ogni controllo (inclusi quelli non del tuo ma di altri programmi) ha un Handles ovvero un codice numerico che lo identifica
quando andavamo a fare pb=form4.picturebox1 passavamo a pb tutti i valori delle proprietà di picturebox1 compreso il valore della proprietà Handles
così facendo entrambe le picturebox avevano lo stesso Handles e questo provocava che picturebox1 diventava pb e non veniva creata nessuna nuova picturebox.
Ci sono due soluzioni al problema:
1.o Crei una nuova classe che eredita la classe picturebox
2.o, al momento della creazione della nuova picturebox, imposti tutte le proprietà(tipo: image backcolor..) ai valori desiderati
Se non sei abituato a lavorare con le classi usa la seconda soluzione che va benissimo
il fatto , come dicevi nell'altro messaggio, che apparentemente non creava nessuna ptb nuova
è dovuto dal fatto che il colore di default delle ptb è quello di sfondo del form. Quindi te le creava ma non le vedevi per questo motivo, le cambi il backcolor ti accorgerai che in realtà le crea, ci ho provato.
(che poema)
Invece per l' ultimo problema che mi hai detto potrebbe essere dovuto dal fatto pb è dichiarata
nel form2 (tra l' altro come variabile locale al interno della sub btn1_clik), dichiarala al interno di un modulo come variabile pubblica (non Dim ma Public). Per aggiungere un modulo: aggiungi-nouvo elemento-modulo.