Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Array picturebox
Forum - C# / VB.NET - Array picturebox

Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 15:26
Martedì, 26/08/2008
Ho creato via codice 256 picturebox utilzzando una variabile di tipo picturebox chiamata "grid"
e una variabile di tipo array chiamata "index".
Con un ciclo for da 0 a 255 ho creato una nuova picturebox è l'ho assegnata a index(i).
N.B. "i" è il contatore del for.
Vorrei sapere come riconoscere una qualsiasi cella di index in un evento.
Esempio
Private Sub index_Click...

Se non sono stato chiaro ditemi dove non avete capito.

Ultima modifica effettuata da pierotofy il 27/08/2008 alle 21:43
PM Quote
Avatar
punkettone90 (Member)
Expert


Messaggi: 279
Iscritto: 16/05/2007

Segnala al moderatore
Postato alle 10:32
Mercoledì, 27/08/2008
se tanti oggetti picturebox delegano l'evento ad un solo metodo non saprei, prova a vedere se tramite la classe eventarg riesci ad ottenere qualcosa, altrimenti fai una classe che contenga un campo di tipo int (o byte), istanzi sempre con lo stesso ciclo 256 oggett idi questa classe e di ogniuna metti nel campo il valore di i, poi l'evento di ogni picturebox sarà gestito da un metodo contenuto nella classe che hai fatto; quindi alla fine avrai tanti metodi delegati quanti sono gli oggetti di picturebox che vai a fare, inoltre questi metodi avranno a fianco un campo che indica che numero dell'array sono.

dimmi se non sono stato chiaro

:k:

PM Quote
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 18:52
Mercoledì, 27/08/2008
se mi fai un esempio te ne sarei grato:D

PM Quote
Avatar
punkettone90 (Member)
Expert


Messaggi: 279
Iscritto: 16/05/2007

Segnala al moderatore
Postato alle 22:07
Mercoledì, 27/08/2008
picturebox[] immagini=new picturebox[255];
delegati[] classi=new delegati[255];

for (int i=0;i<255;i++)
{
   immagini=new picturebox();
   classi=new delegati();
   classi.id = i;
   immagini.onclick+=new eventhandler(classi.delegato);
}

class delegati
{
   public int id;
   public delegato(object sender, clickeventarg e)
   {
      console.writeln(id.tostring());
   }
}



forse ho sbagliato a scrivere il nome della classe  degli eventi, però la struttura è questa :k:

PM Quote
Avatar
I)eathBringer (Normal User)
Pro


Messaggi: 127
Iscritto: 11/08/2008

Segnala al moderatore
Postato alle 23:17
Mercoledì, 27/08/2008
Scusate ancora ma potreste farmi un esempio in vb.net?(non mi picchiate per non averlo scritto sopra);)

PM Quote
Avatar
punkettone90 (Member)
Expert


Messaggi: 279
Iscritto: 16/05/2007

Segnala al moderatore
Postato alle 11:49
Giovedì, 28/08/2008
puoi sempre usare un traduttore... :k:

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 11:50
Sabato, 30/08/2008
Troppo complicato... Usa semplicemente la proprietà Tag o Name di sender:
Codice sorgente - presumibilmente VB.NET

  1. Dim Index(255) As PictureBox
  2.  
  3. For I As Int16 = 0 To 255
  4.   Dim P As New PictureBox
  5.   'Assegna a P il suo indice
  6.   P.Tag = I
  7.   Index(I) = P
  8.   AddHandler P.Click, Addressof Image_Click
  9. Next
  10.  
  11. '...
  12.  
  13. Private Sub Image_Click(ByVal sender As Object, ByVal e As EventArgs)
  14.   If sender.Tag = 2 Then
  15.     'Si tratta della terza picturebox
  16.   End If
  17. End Sub


PM Quote